我正在努力找出处理我们公司dll更新的最佳方法。以前我们只有一个代码库,每个项目都是重复的。这不好玩。
更新低级别dll时会出现问题。但我们假设我们已经改变了#6。
我们是否应该构建#6,更新#7(从nuget包获得#6),将#7合并到Main,构建然后用所有需要的dll更新游戏?或者我们不应该在#^中加载#7来加载#7,因为我们知道改变后会对该项目产生什么影响。
总的来说,我只是在寻找一些"我们如何做到"来自其他一些在如何管理他们的dll方面有更多经验的地方
答案 0 :(得分:3)
如果DLL是公司内部但在项目/解决方案外部,那么我们只能通过nuget接受他们的DLL。
由团队维护内部依赖关系以通知相关项目是否需要进行更新(关键)。然后根据团队风格将其置于当前sprint中或计划为瀑布要求。否则,所有团队间依赖关系都将通过nuget部署,并在下一个或当前开发周期中自动获取,具体取决于团队实践。
无论如何,每个版本的QA都会执行完全回归,因此效果非常好。
因此,在您的情况下,对#6的更改不会立即传播,除非#6的团队认为它对组织至关重要,在这种情况下,所有相关项目都必须更新。 #7的团队会收到此消息,自行更新,测试,然后向您推送所需的更新。
答案 1 :(得分:2)
这是我们在公司使用的方法。我们有一个本地NuGet,每个常见的dll都放在那里。其他项目可以通过NuGet包引用这些dll。当其中一个dll更新时,会自动创建一个新的包并推送到我们的本地NuGet。其余引用该dll的项目在那时已过时,因此我们应该手动更新这些项目上的NuGet包。
NuGet包的自动更新:
我们按照以下步骤使用TFS进行持续集成: