我正在寻找以下问题的经验或想法。
我有一个Nuget包(EntityFrameworkExtras 1.2.0),它们主要在Nuget Feed上托管。
此程序包依赖于EntityFramework。 在EntityFramework 6发布之前,一切都很糟糕。
EntityFramework代码的更改意味着我的包不再适用于EntityFramework 6及其后续版本。
我试图考虑如何最好地解决这个问题,我预见到两个选择:
所以,我会有一个使用EntityFramework 5.0.0和 .nuspec 编译的软件包版本 规定它依赖于EntityFramework [0.0.0 - 5.0.0]
我将介绍一个名为EntityFrameworkExtras(ef6)的新软件包。该包将在EntityFramework 6.0.0中编译 并且 .nuspec 将指示它依赖于EntityFramework [6.0.0> = *]
因此当前版本将支持EntityFramework 5.0.0及更低版本 我会添加一个新版本的软件包(版本2.0.0),它将取决于EntityFramework 6.0.0 [6.0.0> = *]
答案 0 :(得分:0)
我最后去了选项1)。我相信这对于包的用户来说是一个更容易的选择,因为它清楚了每个包的依赖性。
我也相信在处理不同的包时更容易使用nuget命令,而不是试图意识到一个包的不同版本具有不同的依赖版本。
同样从开发的角度来看,它更清晰,更容易开发和修复不同软件包上的错误。最后,它将使持续集成环境更容易实现,因为每个包都将被视为一个不同的项目。