最近在我们公司,我们决定将我们公司开发的库文件上传到私人NuGet服务器。在版本号开始增长之前,一切似乎都很好。使用我们的NuGet库的解决方案已经停止正确构建,我们认为版本控制就是问题所在。
以下是该方案:
这是一个带有包的引用的图表(你可以看到它们之间有引用)
1)在解决方案 S 中,您从私有NuGet服务器安装,例如库 A,B,E ,所有版本号均为 1.0.0.0
2)您在 A 中进行了更改,并将其版本号增加为 1.0.0.1 。
3)您将库 A 从解决方案 S 中的NuGet包管理器更新为版本 1.0.0.1
4)你最终有两个版本的 A 一个 S (1.0.0.1)和一个 B,E (1.0。 0.0)
5)在解决方案 S 中,Visual Studio(在2012年,2015专业版上测试)显示找不到引用,并且想要重新安装软件包。当你这样做时,它会构建,但当你提交下一个人的构建失败时......
一些(丑陋?)解决方法不是将包引用为NuGet,而是将引用嵌入到dll中。或者进入所有引用 A 的软件包,更新它,更改其版本然后更新 S ,这听起来很糟糕......
并且它应该正常工作,因为当您引用NuGet包时,您没有指定特定版本但是> =版本?
或者我们做错了吗?
谢谢!
答案 0 :(得分:3)
在您的情况下,当从属程序包A升级到版本1.0.0.1时,有两种方法可以解决此问题。
<dependentAssembly>
<assemblyIdentity name="someAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" />
</dependentAssembly>
<dependencies>
<dependency id="Package A" version="[1.0.0.0, higher version)" />
</dependencies>