【发布时间】:2019-12-03 04:41:28
【问题描述】:
我有一个类似这样的解决方案。
我想为 ProjA、ProjB 和 ProjC 生成单独的 nuget 包,并且我希望这个过程能够检测上面在 ProjC 中显示的项目引用,并将它们转换为 nuspec 文件中的 nuget 依赖项,而不仅仅是包含ProjC nuget 包中 ProjA 和 ProjB 的 dll,当我使用带有 -IncludeReferencedProjects 选项的“nuget pack”命令时会发生这种情况。
此选项说明自动包含文件或将它们添加为依赖项,但始终包含它们,即使我希望将它们添加为依赖项。奇怪的是,在我的 realword 解决方案中,项目引用之一总是作为依赖项添加,但其余的没有,我无法弄清楚其中的区别。
如何告诉 nuget 将它们添加为依赖项?
我希望引用是项目引用,因为它使开发更容易,而不是每次我想测试时都必须生成更新的本地 nuget 包。
【问题讨论】:
-
将项目更改为“sdk 样式”(通过创建新的 .net 核心项目和 TargetFramework 到 net48 来实现)
-
查看 IncludeReferencedProjects 的描述:
If a referenced project has a corresponding .nuspec file that has the same name as the project, then that referenced project is added as a dependency. Otherwise, the referenced project is added as part of the package。 -
所以只有当我们在相应的项目文件夹中添加
ProjA.nuspec和ProjB.nuspec时,nuget pack命令才能将ProjA和ProjB识别为nuget包。在这种情况下,IncludeReferencedProjects将生效,将它们添加为您所期望的 nuget 依赖项......除此之外,我们还可以选择创建一个 ProjC.nuspec 并在那里手动定义 nuget 依赖项。 -
刚刚签到看看这个问题是否已解决,如果您需要任何进一步的帮助,请随时告诉我。
标签: c# .net visual-studio nuget