我有一个类似的解决方案:
Sln
-> Proj A
-> proj B
Proj B
参考Proj A
两个项目都有一个paket.template
,如下所示:
type project
当我paket pack
时,我创建了两个nuget,每个项目一个。很棒。
但是,我现在想将ProjA.dll
捆绑在ProjB
的nuget中(ProjB
是一个需要捆绑其依赖项才能运行的.exe /工具)
在include-referenced-projects true
的{{1}}中添加ProjB
无效,我尝试过的paket.template
命令行paket
的任何组合也不起作用。
是否支持?这是错误吗?我做错了吗?
无论哪种方式,如何在不单独容纳--include-referenced-projects true
和ProjA
的情况下实现自己想要的目标?
谢谢
答案 0 :(得分:0)
如果从生成的nuget包中查看ProjB.nuspec,则会看到对ProjA包的nuget引用。因此,产生的ProjB软件包具有所有必需的依赖性。
您可以通过几种方式实现自己想要的东西:
通过命令paket pack <output> --template <path to ProjB paket.tempplate>
(没有--include-referenced-projects
标志)打包ProjB。如果需要,可以通过单独的命令打包ProjA。
从ProjA中删除paket.template
,然后用--include-referenced-projects
标志打包ProjB。但是在这种情况下,将不会为ProjA创建软件包。
将ProjB的paket.template类型从“项目”更改为“文件”,并手动指定所有依赖项和文件。
(HACK :)),可以将ProjA的paket.template从paket.template
重命名为<somethingElse>.template
,并用--include-referenced-projects
标志打包ProjB。
Paket不会找到ProjA产生的nuget包并将其作为二进制依赖项添加到ProjB中。您仍然可以使用单独的命令paket pack --template "path to <somethingElse>.template"