3

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

 -> Proj A
 -> proj B

Proj B参考Proj A

这两个项目都有一个paket.template看起来像这样的:

当 I 时paket pack,我创建了两个 nuget,每个项目一个。极好的。

但是,我现在想将ProjA.dll其捆绑在ProjBnuget 中(ProjB是一个需要捆绑其依赖项才能运行的 .exe/工具)。

添加include-referenced-projects trueProjBspaket.template没有效果,我尝试过的任何paket命令行组合也没有效果。--include-referenced-projects true

这支持吗?这是一个错误吗?

无论哪种方式,我怎样才能实现我想要的,而不用单独解决 houseProjAProjB

4

1 回答 1

0

如果您从生成的 nuget 包中查看 ProjB.nuspec,您会看到对 ProjA 包的 nuget 引用。所以生成的 ProjB 包具有所有需要的依赖项。

您可以通过以下几种方式实现您想要的:

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

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

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

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

于 2018-07-06T09:53:35.330 回答