【问题标题】:Nested Nuget Package嵌套 Nuget 包
【发布时间】:2017-09-25 04:16:42
【问题描述】:

我的问题有点复杂,希望我能解释清楚。

有 2 个互操作 dll,它们是产品的 dll,一个用于 V10,另一个用于 V16。让我们称之为“MyComDll”

我有一个使用 MyComDll 的名为 MyWrapper 的项目。在 TFS 中,我想为 V10 和 V16 创建 nugetpage。没关系,我可以这样做,但我想创建两个 nuget 包的问题。一个 nuget 包使用 MyComDll V10,另一个使用 MyComDll16。

在那之后,我有了另一个使用 MyWrapper 的名为 MyLibrary 的项目。在 TFS 中,我也应该能够选择是 V10 还是 V16。根据此信息,MyWrapper nuget 包必须是 V10 或 V16。

然后,同样的逻辑,我有一个名为 MyApp 的应用程序,它使用 MyLibrary。根据构建配置(V10 和 V16),它必须使用 MyLibrary V10 或 V16。

我画了这个场景

那么我该怎么做呢?

【问题讨论】:

  • 您想将这些打包到 TFS 中吗?你能解释一下你想做什么吗?
  • 使用 TFS 构建和设置构建配置,例如 V10 或 V16,我想要一个考虑构建配置 (V10/V16) 的结果。例如,如果我选择 V16,则 myApp 项目必须使用使用 V16 的 MyLibrary,并且 MyLibrary 必须使用 MyWrapper V16,而 MyWrapper 必须使用 V16,这些是未作为参考添加的包

标签: tfs version-control nuget


【解决方案1】:

将每个东西都放入一个 NuGet 包中。您可以在 nuspec 文件中指定对其他 NuGet 包的依赖项。

【讨论】:

  • 那么你无法通过编译时间来指定你将使用哪个。例如在 TFS 中,我选择了 V16 配置,因此它应该创建 Nuget Package V16。
【解决方案2】:

TFS 构建没有像“我选择了 V16 配置,因此它应该创建 Nuget Package V16”这样的功能。

在 TFS 构建中,要恢复的包在项目的 package.config 文件中定义。如果要构建项目的不同版本,可以使用replace token 之类的步骤在构建之前更改 package.config 文件中定义的程序集。或者您可以为每个版本创建 2 个构建定义。

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多