C# 如何识别Nuget元包?

C# 如何识别Nuget元包?,c#,nuget,C#,Nuget,我正在使用一个工具,在这个工具中,我需要以编程的方式标识作为PackageReference添加到当前项目中的Nuget包,它是一个元包或常规包。因为没有足够的关于NuGetV3API的文档,所以很难获得这些详细信息。任何关于这方面的建议都将不胜感激 我尝试了以下代码和方法GetMetadataAsync返回NuGet.Protocol.PackageSearchMetadata类型的集合,但是该类型上没有任何属性表明package是metapackage private async void

我正在使用一个工具,在这个工具中,我需要以编程的方式标识作为PackageReference添加到当前项目中的Nuget包,它是一个元包或常规包。因为没有足够的关于NuGetV3API的文档,所以很难获得这些详细信息。任何关于这方面的建议都将不胜感激

我尝试了以下代码和方法GetMetadataAsync返回NuGet.Protocol.PackageSearchMetadata类型的集合,但是该类型上没有任何属性表明package是metapackage

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();

    }
private async void按钮1\u单击(对象发送方,事件参数e)
{
i记录器日志=新记录器();
列表提供程序=新列表();
providers.AddRange(Repository.Provider.GetCoreV3());
PackageSource PackageSource=新PackageSource(“https://api.nuget.org/v3/index.json");
SourceRepository SourceRepository=新的SourceRepository(packageSource,提供者);
PackageMetadataResource PackageMetadataResource=等待sourceRepository.GetResourceAsync();
IEnumerable searchMetadata=await packageMetadataResource.GetMetadataAsync(“Microsoft.AspNetCore.All”、true、true、log、CancellationToken.None);
var list=searchMetadata.ToList();
}
与包上的实际“类型”/“属性”相比,“元包”更像是构造nuget包的约定。 如果NuGet包不包含任何资产(库、内容资产、工具、构建逻辑等)——实际上是空的——但只依赖于其他包,则称为“元包”。测试包是否满足此定义的唯一方法是下载并检查其资产