我有一个看起来像这样的解决方案:

 -> 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添加到ProjBpaket.template中无效,我尝试过的paket命令行--include-referenced-projects true的任何组合也无效。
支持吗?这是一个错误吗?
无论哪种方式,如何在不针对ProjAProjB设置单独解决方案的情况下实现我想要的?

最佳答案

如果从生成的nuget包中查看ProjB.nuspec,则会看到对ProjA包的nuget引用。因此,生成的ProjB软件包具有所有必需的依赖关系。

您可以通过以下几种方法达到所需的目标:

  • 通过命令paket pack <output> --template <path to ProjB paket.tempplate>打包ProjB(无--include-referenced-projects标志)。如果需要,可以通过单独的命令打包ProjA。
  • 从ProjA中删除paket.template,然后用--include-referenced-projects标志打包ProjB。但是在这种情况下,将不会为ProjA创建软件包。
  • 将ProjB的paket.template类型从“项目”更改为"file",并手动指定所有依赖项和文件。
  • (HACK :)),您可以将ProjA的paket.template从paket.template重命名为<somethingElse>.template,并使用--include-referenced-projects标志打包ProjB。
    Paket找不到ProjA产生的nuget包,并将其作为二进制依赖项添加到ProjB中。您仍然可以使用单独的命令paket pack --template "path to <somethingElse>.template"
  • 来打包ProjA

    10-07 12:32