我正在Visual Studio 2013中开发一个C#项目,我们开发了许多nuget包,以便在多个不同的应用程序中使用.我们遇到了一些nuget.org软件包,我们希望将其"固定"到旧版本,并将旧版本软件包的表达式集中在一起.
例如,我们与Unity 4或NUnit 3不兼容,因此我们希望坚持使用这些软件包的先前版本.
我不喜欢在packages.config中使用"allowedVersions",因为
它不是集中的(每个项目都必须输入)
在解决方案级别更新包的Visual中的GUI 忽略项目级别"allowedVersions"
我已经玩过在根级别nuget包中表达版本固定,该包具有带有依赖关系行的.nuspec
这似乎阻止了所有消费者进入不受支持的版本.我喜欢这个,因为它很简单,我可以告诉我的队友确保每个包都包含那个根级nuget包.
我不喜欢的一件事是这个root包的每个使用者都会得到他们不一定使用的包的引用.
例如,我发布的应用程序现在将引用NUnit,尽管根本不使用它.
有没有办法在Nuget中表达版本固定而不会获得这些不必要的依赖?