Entity framework 支持其依赖项的多个版本的Nuget包

Entity framework 支持其依赖项的多个版本的Nuget包,entity-framework,nuget,entity-framework-6,Entity Framework,Nuget,Entity Framework 6,我正在寻找一些关于以下问题的经验或想法 我有一个Nuget包()托管在主Nuget提要上 此包依赖于EntityFramework在EntityFramework 6发布之前,一切都很顺利 EntityFramework代码的更改意味着我的包不再适用于EntityFramework 6及以后的版本 我试图考虑如何最好地处理这个问题,我预见到两个选项: 1) 维护包的两个版本 因此,我将有一个使用EntityFramework 5.0.0编译的包版本,.nuspec将 说明它依赖于EntityFr

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

我有一个Nuget包()托管在主Nuget提要上

此包依赖于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)。我相信这对于包的用户来说是一个更容易的选择,因为它清楚每个包的依赖关系是什么

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


另外,从开发角度来看,开发和修复不同软件包上的bug更干净、更容易。最后,它会使一个持续的集成环境更容易实现,因为每个包都将被考虑为一个不同的项目。如果你看一个像Spile这样的软件包,你会看到这个软件包名为
Spile.EF5
Spile.EF6
,等等。我认为这是投了1票):)只要看看Nuget上的软件包列表,人们似乎都赞成选项1)