我在VS2010(和TFS2010)管理一个中等规模的项目。我们有独立的团队负责不同的部分,还有一个团队负责"公共"部分,它将提供框架等。源结构:
- 共同
- +——CommonLibrary1
- +——CommonLibrary2
- +,等。
- Part1
- Part2
- 等。
要求:
- "Common"团队中的开发人员应该使用Common。仅包含通用代码 的sln"Part1"团队中的开发人员应该使用Part1。包含part1的SLN。它从Common中引用了一些东西,并且应该能够构建这些东西(对于part2等也是如此)
- 如果"Common"团队中的开发人员创建了一个新的"CommonLibrary3"项目,我只想更新Common。我不想碰第一部分。sln等。
- TFS构建应该总是构建所有
Non-requirement:
- 仅Part1的tfs构建。所有这些都是一个单独的项目,并且总是一起发布。
- 部件分离管理
我知道的次优解:
-
添加常见。SLN到第一部分。sln -似乎VS只是从Common复制所有项目。SLN到第1部分。
-
用MSBuild目标文件替换解决方案文件- http://sedodream.com/2010/03/19/ReplacingSolutionFilesWithMSBuildFiles.aspx。我想这将工作,但我希望开发人员从VS更新解决方案,而不是手工编辑MSBuild文件。
我找到的TFS指南书称之为"分区解决方案",但没有具体说明如何实际实现它。
建议吗?
在TFS 2010构建定义中,您可以参考:
- 要包含在构建工作区中的多个源代码控制文件夹
- 在构建过程中构建多个解决方案文件
所以(如果我正确理解你的问题),关于TFS团队构建你没有问题。
您剩下的唯一挑战是(也许)在part1或part2开发人员的任何开发系统上,开发人员也应该能够构建Common.sln。只要该开发人员具有对公共分支的读访问权,本地工作区就可以包含源代码库,并且两者都可以由开发人员构建。
:
- Common开发人员对Common具有RW访问权限,对Part1或Part2只有R访问权限(测试更改的影响),
- Part1开发者对Common有R访问权限,Part1有RW访问权限,Part2没有R访问权限,
- Part2开发人员对Common有R访问权限,Part1没有R访问权限,Part2有RW访问权限