我正在Visual Studio 2013中开发一个C#项目,我们开发了许多nuget包,供多个不同的应用程序使用。我们遇到了一些nuget.org软件包,我们想要" pin"到旧版本,并将旧版本的包的表达集中。
例如,我们与Unity 4或NUnit 3不兼容,因此我们希望坚持使用这些软件包的先前版本。
我不喜欢使用" allowedVersions"在packages.config中,因为
我已经在一个根级别nuget包中表达了版本固定,该包具有带有依赖关系行的.nuspec
<dependency id="Unity" version="(,4.0)" />
<dependency id="NUnit" version="(,3.0)" />
似乎阻止所有消费者进入不受支持的版本。我喜欢这个,因为它很简单,我可以告诉我的队友确保每个包都包含那个根级nuget包。
我不喜欢的一件事就是这个root包的每个消费者都会得到他们不一定使用的包的引用。
例如,我发布的应用程序现在将引用NUnit,尽管根本不使用它。
有没有一种方法可以在没有获取这些不必要的依赖项的情况下在Nuget 中表达版本固定?