Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NuGet元包是否仅保留给.net core?_C#_.net_.net Core_Nuget - Fatal编程技术网

C# NuGet元包是否仅保留给.net core?

C# NuGet元包是否仅保留给.net core?,c#,.net,.net-core,nuget,C#,.net,.net Core,Nuget,在.NET文档中,我看到了很多关于nuget元包的解释,但是所有的示例都是使用.NETCore的。是否可以为完整的.net framework程序集创建元包,并使用.net framework应用程序使用 是否只能使用ProjectReference而不能使用packages.config 谢谢 元包只是一个包,它不包含自己的任何内容/库,并且依赖于它所包含的所有其他包。这不是NuGet特有的东西,顺便说一下,许多包管理器都有相同的概念,通常也将它们称为元包 特别是关于NuGet,由于NuGet

在.NET文档中,我看到了很多关于nuget元包的解释,但是所有的示例都是使用.NETCore的。是否可以为完整的.net framework程序集创建元包,并使用.net framework应用程序使用

是否只能使用ProjectReference而不能使用packages.config


谢谢

元包只是一个包,它不包含自己的任何内容/库,并且依赖于它所包含的所有其他包。这不是NuGet特有的东西,顺便说一下,许多包管理器都有相同的概念,通常也将它们称为元包

特别是关于NuGet,由于NuGet必须处理不同的目标框架和资产选择,这是许多包经理不必担心的,因此可能需要在nupkg中添加一些虚假信息以使其正常工作。我想我以前见过的是在
lib\target framework
文件夹中创建一个名为
.\ucode>的空文件,该文件与依赖包使用的TFM相匹配。例如,如果为具有net45和netstandard2.0 libs的包创建一个元包,那么nupkg中有两个文件,
lib/net45/.\uu和
lib/netstandard2.0/.\uu,这两个文件都是空的。但是,我自己还没有测试过这个,所以你应该这样做,但是如果只有一个nuspec的nupkg没有其他功能,那么试试这个


由于元包在其他方面并不特殊(它们与“常规”包具有相同的包类型),因此它们在packages.config和PackageReference中都可以正常工作。元包可能对PackageReference最有用,因为它支持可传递的依赖项。换句话说,用户添加元包,他们的csproj得到一个引用,否则是“干净的”。使用packages.config,当他们添加元包时,所有可传递的依赖项也将添加到packages.config和csproj中。

您能否更具体地说明您要实现的目标?另外,不确定它是否与您的问题相关,但创建“.NET标准”目标是为了与使用不同.NET(核心/非核心)版本的项目兼容。不,这不相关。我没有测试引用完整的.net项目中的元包,所以我在问自己这是否可能。所以如果我完全理解你的意思,我应该能够从完整的.net框架项目(而不是核心项目)中创建和使用元包,因为这只是一个与nuget相关的东西。是吗?简短的回答,是的,应该很好用。长答案、.NET核心和.NET标准只是TFM。从NuGet的角度来看,它们没有什么特别之处,只是资产选择或TFM兼容性更为复杂。您也可以将SDK项目作为.NET Framework的目标,尽管它们仅限于NuGet软件包的PackageReference。但是,您也可以将PackageReference与旧式csproj一起使用。因此,您似乎认为.NETCore在某种程度上是不同的或特殊的,但事实并非如此,只是同时出现了一系列新的构建工具。