包含项目参考的Paket包含参考项目

时间:2018-07-06 07:39:59

标签: nuget paket

我有一个类似的解决方案:

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 trueProjA的情况下实现自己想要的目标?

谢谢

1 个答案:

答案 0 :(得分:0)

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

您可以通过几种方式实现自己想要的东西:

  1. 通过命令paket pack <output> --template <path to ProjB paket.tempplate>(没有--include-referenced-projects标志)打包ProjB。如果需要,可以通过单独的命令打包ProjA。

  2. 从ProjA中删除paket.template,然后用--include-referenced-projects标志打包ProjB。但是在这种情况下,将不会为ProjA创建软件包。

  3. 将ProjB的paket.template类型从“项目”更改为“文件”,并手动指定所有依赖项和文件。

  4. (HACK :)),可以将ProjA的paket.template从paket.template重命名为<somethingElse>.template,并用--include-referenced-projects标志打包ProjB。 Paket不会找到ProjA产生的nuget包并将其作为二进制依赖项添加到ProjB中。您仍然可以使用单独的命令paket pack --template "path to <somethingElse>.template"

  5. 来打包ProjA