【发布时间】:2021-01-05 02:40:11
【问题描述】:
使用 .NET Core/Standard (C#) 我想检索特定所有者的所有 nuget 包的详细信息。
例如,提供“charliepoole”会给我所有相关的包,如页面上的:https://www.nuget.org/profiles/charliepoole
我目前正在使用包 NuGet.ProjectModel 按 ID/版本检索单个包,但似乎没有任何其他相关方法可以帮助我。
作为参考,这是我按 ID 和版本检索单个包的方式:
public async Task<IPackageSearchMetadata> GetPackageAsync(string id, string version, CancellationToken cancellationToken = default)
{
var packageSource = new PackageSource("https://api.nuget.org/v3/index.json", "NugetV3");
var providers = new List<Lazy<INuGetResourceProvider>>();
providers.AddRange(Repository.Provider.GetCoreV3());
var repo = new SourceRepository(packageSource, providers);
var packageMetadataResource = await repo.GetResourceAsync<PackageMetadataResource>(cancellationToken);
var packageIdentity = new PackageIdentity(id, NuGetVersion.Parse(version));
var context = new SourceCacheContext
{
NoCache = true,
DirectDownload = true
};
return await packageMetadataResource
.GetMetadataAsync(packageIdentity, context, new NullLogger(), cancellationToken);
}
这是否可以使用任何官方提供的与 nuget API 对话的 nuget 包?
【问题讨论】: