NuGet.Protocol 7.9.0

NuGet.Protocol

NuGet.Protocol is a NuGet client SDK library that provides a set of APIs for interacting with NuGet feeds. It provides a way for developers to query NuGet feeds to discover packages and their dependencies, and also to download packages and their associated assets.

Usage

At the center of this library are the PackageSource and SourceRepository types, which represent a NuGet source that may be a file source or an http based source implementing the V2 or V3 protocol.

PackageSource localSource = new PackageSource(@"D:\LocalSource");
SourceRepository localRepository = Repository.Factory.GetCoreV3(localSource);

SourceRepository repository = Repository.Factory.GetCoreV3("https://api.nuget.org/v3/index.json");

The SourceRepository then has a GetResourceAsync method that you can use to acquire implementations of INuGetResource that often are V3 resources.

FindPackageByIdResource resource = await repository.GetResourceAsync<FindPackageByIdResource>(); 

Examples

Search packages

Search for "json" packages using the NuGet V3 Search API:

PackageSearchResource resource = await repository.GetResourceAsync<PackageSearchResource>();
SearchFilter searchFilter = new SearchFilter(includePrerelease: true);

IEnumerable<IPackageSearchMetadata> results = await resource.SearchAsync(
    "json",
    searchFilter,
    skip: 0,
    take: 20,
    NullLogger.Instance,
    CancellationToken.None);

Download a package

Download Newtonsoft.Json v12.0.1 using the NuGet V3 Package Content API:

FindPackageByIdResource resource = await repository.GetResourceAsync<FindPackageByIdResource>();

string packageId = "Newtonsoft.Json";
NuGetVersion packageVersion = new NuGetVersion("12.0.1");
using MemoryStream packageStream = new MemoryStream();

await resource.CopyNupkgToStreamAsync(
    packageId,
    packageVersion,
    packageStream,
    new SourceCacheContext(),
    NullLogger.Instance,
    CancellationToken.None);

Push a package

Push a package using the NuGet V3 Push and Delete API:

PackageUpdateResource resource = await repository.GetResourceAsync<PackageUpdateResource>();

await resource.Push(
    "MyPackage.nupkg",
    symbolSource: null,
    timeoutInSecond: 5 * 60,
    disableBuffering: false,
    getApiKey: packageSource => "my-api-key",
    getSymbolApiKey: packageSource => null,
    noServiceEndpoint: false,
    skipDuplicate: false,
    symbolPackageUpdateResource: null,
    NullLogger.Instance);

Additional documentation

More information about the NuGet.Protocol library can be found on the official Microsoft documentation page and NuGet API docs.

Showing the top 20 packages that depend on NuGet.Protocol.

Packages Downloads
NuGet.DependencyResolver.Core
NuGet client library.
164
NuGet.DependencyResolver.Core
NuGet client library.
163
NuGet.DependencyResolver.Core
NuGet client library.
158
NuGet.DependencyResolver.Core
NuGet's PackageReference dependency resolver implementation.
154
NuGet.DependencyResolver.Core
NuGet client library.
153
NuGet.DependencyResolver.Core
NuGet's PackageReference dependency resolver implementation.
151
NuGet.DependencyResolver.Core
NuGet client library.
151
NuGet.DependencyResolver.Core
NuGet client library.
150
NuGet.DependencyResolver.Core
NuGet client library.
148
NuGet.DependencyResolver.Core
NuGet's PackageReference dependency resolver implementation.
147
NuGet.DependencyResolver.Core
NuGet client library.
147
NuGet.DependencyResolver.Core
NuGet's PackageReference dependency resolver implementation.
145
NuGet.DependencyResolver.Core
NuGet client library.
144
NuGet.DependencyResolver.Core
NuGet client library.
143
NuGet.DependencyResolver.Core
NuGet's PackageReference dependency resolver implementation.
143
NuGet.DependencyResolver.Core
NuGet client library.
142

.NET Framework 4.7.2

.NET 8.0

Version Downloads Last updated
7.9.0 13 8/12/2026
7.6.0 30 5/12/2026
7.3.1 31 5/3/2026
7.3.0 37 2/14/2026
7.0.3 33 5/4/2026
7.0.1 49 11/25/2025
7.0.0 70 11/13/2025
6.14.3 27 5/3/2026
6.14.0 111 5/15/2025
6.13.2 100 3/1/2025
6.13.1 110 2/14/2025
6.12.5 38 5/3/2026
6.12.4 107 5/8/2025
6.12.1 132 11/16/2024
6.12.0 109 11/18/2024
6.11.2 27 5/3/2026
6.11.1 118 10/4/2024
6.11.0 126 8/14/2024
6.11.0-preview.2 115 6/6/2024
6.10.2 129 8/12/2024
6.10.1 133 6/27/2024
6.10.0 122 5/22/2024
6.9.1 135 2/24/2024
6.8.2 30 5/3/2026
6.8.1 117 2/24/2024
6.8.0 122 11/24/2023
6.7.1 124 2/24/2024
6.7.0 143 8/24/2023
6.6.2 141 2/22/2024
6.6.1 131 8/4/2023
6.6.0 134 5/20/2023
6.6.0-preview.3 133 5/20/2023
6.5.1 140 8/4/2023
6.5.0 123 2/25/2023
6.4.3 133 2/22/2024
6.4.2 125 7/30/2023
6.4.0 128 11/17/2022
6.3.4 111 2/24/2024
6.3.3 135 8/4/2023
6.3.1 126 12/7/2022
6.3.0 137 9/18/2022
6.2.4 126 7/12/2023
6.2.2 123 12/7/2022
6.2.1 135 6/30/2022
6.2.0 141 7/1/2022
6.1.0 142 7/1/2022
6.0.6 129 2/24/2024
6.0.5 131 7/17/2023
6.0.3-rc.1 122 12/7/2022
6.0.2 140 7/1/2022
6.0.0 134 7/1/2022
6.0.0-preview.4.243 122 7/1/2022
6.0.0-preview.3 135 7/1/2022
5.11.7 28 5/3/2026
5.11.6 125 2/25/2024
5.11.5 131 8/4/2023
5.11.3 126 12/7/2022
5.11.2 127 7/1/2022
5.11.0 132 7/1/2022
5.10.0 142 7/1/2022
5.10.0-preview.2.7185 136 7/1/2022
5.9.3 130 11/9/2022
5.9.2 133 7/1/2022
5.9.1 135 7/1/2022
5.9.0 134 7/1/2022
5.9.0-preview.2 124 7/1/2022
5.8.1 163 7/1/2022
5.8.0 143 7/1/2022
5.8.0-preview.3.6823 123 7/1/2022
5.8.0-preview.2.6776 140 7/1/2022
5.8.0-preview.1 145 7/1/2022
5.7.3-rtm.5 117 12/7/2022
5.7.2 142 7/1/2022
5.7.1 139 7/1/2022
5.7.0 136 7/1/2022
5.7.0-rtm.6702 118 7/1/2022
5.7.0-preview.3.6653 130 7/1/2022
5.7.0-preview.2.6618 121 7/1/2022
5.7.0-preview.1.6592 124 7/1/2022
5.6.0 150 7/1/2022
5.6.0-preview.3.6558 147 7/1/2022
5.6.0-preview.2.6489 137 7/1/2022
5.6.0-preview.1.6483 134 7/1/2022
5.5.1 123 7/1/2022
5.5.0 144 7/1/2022
5.5.0-preview.2.6382 135 7/1/2022
5.5.0-preview.1.6319 131 7/1/2022
5.4.0 133 7/1/2022
5.3.1 130 7/1/2022
5.3.0 133 7/1/2022
5.3.0-rtm.6192 143 7/1/2022
5.2.1 141 7/1/2022
5.2.0 140 7/1/2022
5.1.0 163 7/1/2022
5.1.0-preview2.5965 120 7/1/2022
5.0.2 138 7/1/2022
5.0.0 140 7/1/2022
5.0.0-rtm.5867 128 7/1/2022
5.0.0-rtm.5856 126 7/1/2022
5.0.0-preview3.5800 136 7/1/2022
5.0.0-preview2.5782 136 7/1/2022
4.9.7 32 5/3/2026
4.9.6 136 11/5/2022
4.9.5 145 7/1/2022
4.9.4 131 7/1/2022
4.9.3 130 7/1/2022
4.9.2 121 7/1/2022
4.9.2-rtm.5706 135 7/1/2022
4.9.1 133 7/1/2022
4.9.0-rtm.5658 128 7/1/2022
4.8.2 123 7/1/2022
4.8.0 163 7/1/2022
4.8.0-rtm.5362 134 7/1/2022
4.8.0-preview3.5278 130 7/1/2022
4.8.0-preview1.5156 108 7/1/2022
4.7.3 143 7/1/2022
4.7.2 133 7/1/2022
4.7.0 159 7/1/2022
4.7.0-rtm.5148 136 7/1/2022
4.7.0-rtm.5104 120 7/1/2022
4.7.0-preview4.5065 117 7/1/2022
4.7.0-preview1-4986 146 7/1/2022
4.6.4 142 7/1/2022
4.6.3 139 7/1/2022
4.6.2 129 7/1/2022
4.6.1 128 7/1/2022
4.6.0 141 7/1/2022
4.6.0-rtm-4918 118 7/1/2022
4.6.0-rtm-4825 123 7/1/2022
4.6.0-rtm-4791 114 7/1/2022
4.5.3 153 7/1/2022
4.5.2 130 7/1/2022
4.5.0 138 7/1/2022
4.5.0-rtm-4651 129 7/1/2022
4.4.3 148 7/1/2022
4.4.2 131 7/1/2022
4.4.0 143 7/1/2022
4.4.0-preview3-4475 119 7/1/2022
4.3.1 135 7/1/2022
4.3.0 126 7/1/2022
4.3.0-rtm-4324 136 7/1/2022
4.3.0-preview4 148 7/1/2022
4.3.0-preview3-4168 137 7/1/2022