我们使用Team Foundation Server进行项目管理。 假设我们有一个像这样的结构:
Root
ProjA
SuiteB
Bin
SubProj1
SubProj2
SuiteB.sln <-- Contains both SubProj
ProjC
Bin
ProjA是一个包含大多数应用程序中常用代码的库。 它需要在SubProj1,SubProj2和ProjC
中引用目前在每个主文件夹中我都有一个'Bin',我们已经检查了ProjA.dll的副本。
这有效,但ProjA经常更改,一旦ProjA更新,其他项目应该使用新的ProjA,尤其是如果修复了错误。 (我们确保ProjA向后兼容)
我们一直忘记更改/更新Bin文件夹中的dll,而且我们现在有超过30个项目都引用了ProjA,因此在发生更新时必须更改其中的一些项目。
对于那些忘记更新他们正在处理的项目中的dll的程序员,是否有更好的方法?
注意 - 当ProjA发生变化时很难跟踪30个人,即人们一直声称他们不知道有更新,即使发送了电子邮件。
答案 0 :(得分:4)
一般规则是:如果你把二进制文件放在源代码控制中,你就会做错事。
使用对共享项目的项目引用(以便每个应用程序根据需要构建共享项目),或者使用像NuGet这样的包管理器对二进制文件进行版本化,让NuGet在构建时处理二进制引用的相应版本