BaGet SDK
您可以使用 BaGet 的 BaGet.Protocol 包与 NuGet 服务器进行交互。
入门
安装 BaGet.Protocol 包:
dotnet add package BaGet.Protocol
列出包版本
查找 Newtonsoft.Json 包的所有版本:
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
IReadOnlyList<NuGetVersion>> versions = await client.ListPackageVersionsAsync("Newtonsoft.Json");
foreach (NuGetVersion version in versions)
{
Console.WriteLine($"Found version: {version}");
}
下载包
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
string packageId = "Newtonsoft.Json";
NuGetVersion packageVersion = new NuGetVersion("12.0.1");
using (Stream packageStream = await client.DownloadPackageAsync(packageId, packageVersion))
{
Console.WriteLine($"Downloaded package {packageId} {packageVersion}");
}
查找包元数据
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
// 查找包所有版本的元数据。
IReadOnlyList<PackageMetadata> items = await client.GetPackageMetadataAsync("Newtonsoft.Json");
if (!items.Any())
{
Console.WriteLine($"Package 'Newtonsoft.Json' does not exist");
return;
}
foreach (var metadata in items)
{
Console.WriteLine($"Version: {metadata.Version}");
Console.WriteLine($"Listed: {metadata.Listed}");
Console.WriteLine($"Tags: {metadata.Tags}");
Console.WriteLine($"Description: {metadata.Description}");
}
// 或者,查找包单个版本的元数据。
string packageId = "Newtonsoft.Json"
NuGetVersion packageVersion = new NuGetVersion("12.0.1");
PackageMetadata metadata = await client.GetPackageMetadataAsync(packageId, packageVersion);
Console.WriteLine($"Listed: {metadata.Listed}");
Console.WriteLine($"Tags: {metadata.Tags}");
Console.WriteLine($"Description: {metadata.Description}");
搜索包
搜索 "json" 包:
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
IReadOnlyList<SearchResult> results = await client.SearchAsync("json");
foreach (SearchResult result in results)
{
Console.WriteLine($"Found package {result.PackageId} {searchResult.Version}");
}