我有一个看起来像这样的解决方案:
-> Proj A
-> proj B
Proj B
引用 Proj A
这两个项目都有一个如下所示的 paket.template
:
当我 paket pack
时,我创建了两个 nuget,每个项目一个。太棒了。
但是,我现在想让 ProjA.dll
捆绑在 ProjB
的 nuget 中(ProjB
是一个 .exe/tool需要捆绑其依赖项才能运行)。
将 include-referenced-projects true
添加到 ProjB
的 paket.template
没有效果,paket 的任何组合也没有效果
我试过的命令行 --include-referenced-projects true
。
这是否受支持?这是错误吗?
无论哪种方式,如果不为容纳 ProjA
和 ProjB
制定单独的解决方案,我如何才能实现我想要的?
最佳答案
如果您从生成的 nuget 包中查看 ProjB.nuspec,您会看到 nuget 对 ProjA 包的引用。因此生成的 ProjB 包具有所有需要的依赖项。
您可以通过多种方式实现您想要的:
通过命令打包ProjB
paket pack <output> --template <path to ProjB paket.tempplate>
(没有--include-referenced-projects
标志)。如果需要,可以通过单独的命令打包 ProjA。删除
paket.template
来自 ProjA,然后用--include-referenced-projects
打包 ProjB旗帜。但在这种情况下,不会创建 ProjA 包。将 ProjB 的 paket.template 类型从“项目”更改为"file",并手动指定所有依赖项和文件。
(HACK:)) 您可以从
paket.template
为 ProjA 重命名 paket.template|至<somethingElse>.template
并用--include-referenced-projects
打包 ProjB旗帜。 Paket 不会发现 ProjA 生成 nuget 包并将其作为二进制依赖项添加到 ProjB。您仍然可以使用单独的命令打包 ProjApaket pack --template "path to <somethingElse>.template"
关于nuget - Paket include-referenced-projects 与项目引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51205320/