0
我工作的地方,我需要以编程方式识别作为PackageReference添加在我当前项目中的Nuget包是一个元包或常规包。由于没有足够的关于Nuget V3 API的文档,发现很难获得这些细节。任何指针在这方面的赞赏。如何识别Nuget元组件?
我试过下面的代码和方法GetMetadataAsync返回NuGet.Protocol.PackageSearchMetadata类型的集合,但是没有这种类型的任何属性,它说包是元包。
private async void button1_Click(object sender, EventArgs e)
{
ILogger log = new Logger();
List<Lazy<NuGet.Protocol.Core.Types.INuGetResourceProvider>> providers = new List<Lazy<NuGet.Protocol.Core.Types.INuGetResourceProvider>>();
providers.AddRange(Repository.Provider.GetCoreV3());
PackageSource packageSource = new PackageSource("https://api.nuget.org/v3/index.json");
SourceRepository sourceRepository = new SourceRepository(packageSource, providers);
PackageMetadataResource packageMetadataResource = await sourceRepository.GetResourceAsync<PackageMetadataResource>();
IEnumerable<IPackageSearchMetadata> searchMetadata = await packageMetadataResource.GetMetadataAsync("Microsoft.AspNetCore.All", true, true,log, CancellationToken.None);
var list = searchMetadata.ToList();
}