使用参考项目创建和安装nuget包

时间:2020-06-22 14:29:34

标签: nuget nuget-package dotnet-core-pack

我想使用dotnetcore2.1dotnet pack发布dotnet nuget push nuget包。

该软件包是解决方案中的一个项目,该项目引用了该解决方案中的另一个项目。

我无法安装该软件包,因为它无法解析所引用的项目。

我尝试做this,并且它已将引用的软件包.dll包含到.nupkg文件中,但是仍然无法安装。

我真的无法弄清楚这样做的“预期”方法是什么。我绝对不打算将引用的项目发布到nuget提要。

这是微软的大规模监督吗?还是我没有得到什么?

1 个答案:

答案 0 :(得分:0)

您有一个要打包的项目A,并且该项目引用了另一个不可用或不打算单独使用的项目B,但是从设计的角度来看,出于重用等目的将其分开。最后,项目A的程序包还应包含项目B

实际上,这是NuGet存储库issue 3891中跟踪的问题。在此链接和指向相应.NET project issue的链接中,都存在一些涉及MS Build的解决方法,但尚无官方支持。

如上一期所述,甚至本期的Microsoft seems to be aware都只是为标有的引用项目创建包

请不要直接引用

我认为,在不支持项目引用之前,最安全的方法是这样做,尽管这样做并不方便。解决方法可能会过时或导致奇怪的行为。但是,由于您引用的项目仅打算在主库中使用,因此可以这样包含它

<PackageReference Include="LLL.Client" Version="1.0.0" PrivateAssets="all"/>

这样,您引用的项目中的软件包内容将仅包含在您的项目中,主软件包的使用者将看不到它们。