【问题标题】:Nuget Package supporting multiple versions of their dependencyNuget 包支持其依赖项的多个版本
【发布时间】:2014-06-24 19:46:21
【问题描述】:

我正在寻找对以下问题的一些经验或想法。

我有一个托管在主要 Nuget Feed 上的 Nuget 包 (EntityFrameworkExtras 1.2.0)。

这个包依赖于EntityFramework。 在 EntityFramework 6 发布之前,一切都是笨拙的多雷

EntityFramework 代码的更改意味着我的包不再适用于 EntityFramework 6 及更高版本。

我正在考虑如何最好地处理这个问题,我预计有两种选择:

1) 维护包的 2 个版本

所以,我将拥有一个使用 EntityFramework 5.0.0 编译的软件包版本,而 .nuspec 将 指示它依赖于 EntityFramework [0.0.0 - 5.0.0]

我将介绍一个名为 EntityFrameworkExtras (ef6) 的新包。这个包将在 EntityFramework 6.0.0 中编译 而 .nuspec 将表明它依赖于 EntityFramework [6.0.0 >= *]

2) 拥有支持 EntityFramework 6.0 的当前包的新版本

因此当前版本将支持 EntityFramework 5.0.0 及更低版本 我会添加一个依赖于 EntityFramework 6.0.0 [6.0.0 >= *]

的新版本的包(版本 2.0.0)

【问题讨论】:

  • 您会看到使用了这两个选项。如果您查看像 Glimpse 这样的包,您会看到该包被称为 Glimpse.EF5Glimpse.EF6 等。
  • 我会投票给 1) :)
  • 仅查看 Nuget 上的软件包列表,人们似乎更喜欢选项 1)

标签: entity-framework nuget entity-framework-6


【解决方案1】:

最后我选择了选项 1)。我相信这对于包的用户来说是一个更简单的选择,因为它清楚每个包的依赖项是什么。

我也相信在处理不同的包时使用 nuget 命令更容易,而不是试图意识到一个包的不同版本具有不同的依赖版本。

此外,从开发的角度来看,开发和修复不同包上的错误更简洁、更容易。最后,它将使持续集成环境更易于实施,因为每个包都将被视为一个不同的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多