首页 > 解决方案 > 使用引用的项目创建和安装 nuget 包

问题描述

我想使用and发布一个dotnetcore2.1nuget 包。dotnet packdotnet nuget push

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

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

我试过这样做它包含了文件中引用的包.dll.nupkg但仍然无法安装它。

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

这是微软的大规模疏忽还是我没有得到什么?

标签: nugetnuget-packagedotnet-core-pack

解决方案


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

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

如上述问题所述,即使是微软似乎也意识到了这个问题,并且只是为标记为的引用项目创建了包

请不要直接引用

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

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

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


推荐阅读