【问题标题】:Paket include-referenced-projects with project references带有项目引用的 Paket 包含引用的项目
【发布时间】:2018-07-06 07:39:59
【问题描述】:

我有一个如下所示的解决方案:

 -> Proj A
 -> proj B

Proj B 引用 Proj A

两个项目都有一个paket.template,如下所示:

当我paket pack 时,我创建了两个 nuget,每个项目一个。太棒了。

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

include-referenced-projects true 添加到ProjBs paket.template 无效,我尝试过的paket 命令行--include-referenced-projects true 的任何组合也无效。

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

无论哪种方式,我怎样才能实现我想要的,而不是为房子ProjAProjB制定单独的解决方案?

【问题讨论】:

    标签: nuget paket


    【解决方案1】:

    如果您从生成的 nuget 包中查看 ProjB.nuspec,您会看到 nuget 对 ProjA 包的引用。所以生成的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多