nuget - 使用引用的项目创建和安装 nuget 包
问题描述
我想使用and发布一个dotnetcore2.1
nuget 包。dotnet pack
dotnet nuget push
包是解决方案中的一个项目,它引用了该解决方案中的另一个项目。
我无法安装该软件包,因为它无法解析引用的项目。
我试过这样做,它包含了文件中引用的包.dll
,.nupkg
但仍然无法安装它。
我真的无法弄清楚这样做的“预期”方式是什么。我绝对不打算将引用的项目发布到 nuget 提要。
这是微软的大规模疏忽还是我没有得到什么?
解决方案
您有一个A
要打包的项目,并且该项目引用了另一个B
不可用或不打算单独使用的项目,但从设计的角度来看,为了重用等目的而将其分开是合理的。最后 project 的包A
也应该包含 project B
。
实际上,这是在 NuGet 存储库issue 3891中跟踪的一个问题。在这个和您指向相应.NET 项目问题的链接中,都有一些涉及 MS Build 的解决方法,但还没有官方支持。
如上述问题所述,即使是微软似乎也意识到了这个问题,并且只是为标记为的引用项目创建了包
请不要直接引用
我认为在支持项目引用之前,最安全的方法是这样做,尽管它不方便。变通办法可能会过时或导致奇怪的行为。但是,由于您引用的项目仅打算在您的主库中使用,您可以像这样包含它
<PackageReference Include="LLL.Client" Version="1.0.0" PrivateAssets="all"/>
这样,您引用的项目中的包内容将仅包含在您的项目中,而主包的使用者将无法看到它们。
推荐阅读
- php - 警告:第 25 行 C:\xampp\htdocs\practice\VIDEO8\car2\Car.php 中除以零
- sapui5 - 在智能表(响应表)中合并具有相同值的列
- esp8266 - 无需 SDK 的 ESP8266 编程
- ruby - 在 selenium ruby 中用 shift-enter 替换换行符
- shell - 完全限定的参数破坏了我的可执行文件
- python - Pythonic计算平均值的方法
- javascript - 在 javascript 中通过 DOM 获取“必需”的 div 元素
- ruby - S3 为不存在的项目创建签名 URL
- ecmascript-6 - lodash 按具有对象数组的属性对对象数组进行排序
- jquery - 触发航点时的多个动画