在Visual Studio中组织团队工作

问题描述:

请告诉我,如果以下情况可能与常规版本的VS实现,我的意思是非团队版本。首先,我们的团队足够小,大约有10位开发人员,我们使用SVN作为存储库。目录结构相对为每个开发人员相同并且为简化起见,它看起来像在Visual Studio中组织团队工作

工作\部署
工作的\ Sources

所有项目都驻留在“源”目录,并把输出DLL中的“部署”目录。

想象一下,我们正在研究项目“CoreLibrary”,输出dll是CoreLibrary.dll,第二个项目是“SomeLibrary”项目,它用作参考CoreLibrary.dll。这是简化的情况,在现实生活中,这个项目可能依赖于其他开发人员负责的大量dll。在这种情况下,当编译SomeLibrary之后更改CoreLibrary时会出现这种情况。例如忘记通知其他开发者更新他们的参考资料。这种变化使得SomeLibrary项目不能编译,但它只会在运行时才知道 - ) 因此,为了避免这种情况,我们决定另外将所有项目合并到一个复合解决方案中,其中一个项目引用其他项目 - 而不是输出dll ,那么如果整体解决方案构建意味着全部兼容。但是有一个问题 - 为此,我们需要将源项目的依赖项从dll更改为项目。如果我们打开独立项目,我们可以将这个引用的excalmation图标反对出来,但项目仍然可以编译。

作为结论 - 我们通过dll在项目之间引用(每个项目 - 原子功能)。原子性导致当我们改变一个“原子”时,我们必须检查这种改变是否与其他依赖原子相容。做整体解决方案比较方便,我们加载最新的源代码并尝试编译。但是,我们需要改变从dll到项目的项目之间的依赖关系。这似乎不太“正确”,因为在源代码独立项目中更改引用。 为所有开发人员提供一个大的解决方案,迫使他们重新编译所有的源代码,而不仅仅是他的项目也是糟糕的。

我的工作情况与此相似,我们处理它的方式是每个开发人员都有自己的解决方案,并在解决方案内部添加了所有正在使用的项目。这可以防止项目(或dll)发生更改时项目依赖于未看到这些更改的事件,因为您正在引用旧版本。因此,无论何时,当文件在您引用的项目中得到更新并且您构建解决方案时,该文件将被更新,从而反映出这些更改。据我所知,这是做到这一点的正确方法。当我们尝试从源代码控制中使用解决方案时,我们倾向于引用错误,这就是为什么我们切换到只检查解决方案内部的项目。

+0

我想每个开发人员都在处理他的项目时,这个项目包含在主要解决方案中,因此每次调试自己的解决方案时,都会重新编译此解决方案中其他项目的所有源。这一刻减缓了这个过程 – 2010-01-28 07:54:22

+0

那么你是说你正在使用共享项目?每个开发人员都应该有自己的项目,应该只在您构建解决方案时重新构建。 – msarchet 2010-01-28 20:55:48