nuget - Paket include-referenced-projects 与项目引用

标签 nuget paket

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

 -> Proj A
 -> proj B

Proj B 引用 Proj A

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

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

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

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

这是否受支持?这是错误吗?

无论哪种方式,如果不为容纳 ProjAProjB 制定单独的解决方案,我如何才能实现我想要的?

最佳答案

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

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

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

  2. 删除 paket.template来自 ProjA,然后用 --include-referenced-projects 打包 ProjB旗帜。但在这种情况下,不会创建 ProjA 包。

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

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

关于nuget - Paket include-referenced-projects 与项目引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51205320/

相关文章:

visual-studio-2012 - Visual Studio 2012 - 如何将文件链接添加到同一项目中的文件

c# - 找不到程序集“mscorlib,版本 = 2.0.5.0

.net-core - 在包引用中使用 * 占位符时,dotnet restore 未更新到新版本

c# - ASP.NET:由Nuget引起的.NET Framework/Standard/Core DLL冲突。 “您必须添加对程序集System.Runtime的引用...”

github - 私有(private) Github 存储库作为带有 Paket 的 Nuget 源

c# - 带有 nuget 的 MS Build Extension Pack 无法获取 MSBuild.ExtensionPack.tasks

docker - 如何将 Docker 与 Paket 结合使用?

f# - 是否可以从 paket.lock 中删除不相关的限制?

c# - 为什么 Paket 安装的包比 Nuget 多?