Nuget Package支持其依赖项的多个版本

时间:2014-06-19 15:30:21

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

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

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

此程序包依赖于EntityFramework。 在EntityFramework 6发布之前,一切都很糟糕

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

我试图考虑如何最好地解决这个问题,我预见到两个选择:

1)维护包的两个版本

所以,我会有一个使用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及更低版本 我会添加一个新版本的软件包(版本2.0.0),它将取决于EntityFramework 6.0.0 [6.0.0> = *]

1 个答案:

答案 0 :(得分:0)

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

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

同样从开发的角度来看,它更清晰,更容易开发和修复不同软件包上的错误。最后,它将使持续集成环境更容易实现,因为每个包都将被视为一个不同的项目。