在.NET文档中,我看到了许多有关nuget元数据包的解释,但所有示例均与.NET Core有关。是否可以为完整的.net框架程序集创建元包,并通过.net框架应用程序使用它?
只有ProjectReference才有可能,而packages.config没有?
谢谢!
答案 0 :(得分:1)
元包只是一个不包含任何内容/库的包,并且对它包含的所有其他包具有依赖性。顺便说一下,这不是NuGet特有的,许多程序包管理器具有相同的概念,通常也将它们称为元程序包。
关于的NuGet具体而言,由于拥有的NuGet对付不同的目标框架和资产选择,其中有许多软件包管理器不必操心,可能有必要把一些假信息在nupkg,使其正常工作。我想我以前见过的是在_._
文件夹中创建一个名为lib\target framework
的空文件,该文件与从属程序包使用的TFM匹配。例如,如果您创建具有对net45和netstandard2.0库包一个元数据包,那么你就必须在nupkg,lib/net45/_._
两个文件,lib/netstandard2.0/_._
,都是空的。但是,我没有这个测试自己,所以你应该,但以防万一,只有一个nuspec并没有别的一个nupkg不工作,试试这个。
由于元软件包在其他方面并不特殊(它们与“常规”软件包具有相同的软件包类型),因此它们与package.config和PackageReference都可以正常工作。元数据包可能对PackageReference最为有用,因为它支持传递依赖关系。换句话说,用户添加了元包,他们的csproj获得一个引用,否则为“干净”。使用packages.config,当他们添加元包时,所有传递依赖项也将被添加到packages.config和csproj。