我想使用dotnetcore2.1
和dotnet pack
发布dotnet nuget push
nuget包。
该软件包是解决方案中的一个项目,该项目引用了该解决方案中的另一个项目。
我无法安装该软件包,因为它无法解析所引用的项目。
我尝试做this,并且它已将引用的软件包.dll
包含到.nupkg
文件中,但是仍然无法安装。
我真的无法弄清楚这样做的“预期”方法是什么。我绝对不打算将引用的项目发布到nuget提要。
这是微软的大规模监督吗?还是我没有得到什么?
答案 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"/>
这样,您引用的项目中的软件包内容将仅包含在您的项目中,主软件包的使用者将看不到它们。