我有一个看起来像这样的解决方案:
-> Proj A
-> proj B
Proj B
参考Proj A
这两个项目都有一个paket.template
,如下所示:
当我paket pack
时,我创建了两个nuget,每个项目一个。太棒了但是,我现在想将
ProjA.dll
bundle 在ProjB
的nuget中(ProjB
是一个需要 bundle 其依赖项才能运行的.exe / tool)。将
include-referenced-projects true
添加到ProjB
的paket.template
中无效,我尝试过的paket
命令行--include-referenced-projects true
的任何组合也无效。支持吗?这是一个错误吗?
无论哪种方式,如何在不针对
ProjA
和ProjB
设置单独解决方案的情况下实现我想要的? 最佳答案
如果从生成的nuget包中查看ProjB.nuspec,则会看到对ProjA包的nuget引用。因此,生成的ProjB软件包具有所有必需的依赖关系。
您可以通过以下几种方法达到所需的目标:
paket pack <output> --template <path to ProjB paket.tempplate>
打包ProjB(无--include-referenced-projects
标志)。如果需要,可以通过单独的命令打包ProjA。 paket.template
,然后用--include-referenced-projects
标志打包ProjB。但是在这种情况下,将不会为ProjA创建软件包。 paket.template
重命名为<somethingElse>.template
,并使用--include-referenced-projects
标志打包ProjB。Paket找不到ProjA产生的nuget包,并将其作为二进制依赖项添加到ProjB中。您仍然可以使用单独的命令
paket pack --template "path to <somethingElse>.template"