将项目划分为多个解决方案

时间:2011-11-03 15:35:57

标签: visual-studio-2010 tfs2010

我在VS2010(和TFS2010)管理一个中型项目。我们有不同部分的独立团队,以及一个提供框架等“共同”部分的团队。来源结构:

  • 通用
  • + --- CommonLibrary1
  • + --- CommonLibrary2
  • + --- etc。
  • 第1部分
  • 第2部分

要求:

  • “Common”团队中的dev应该使用仅包含公共代码的Common.sln
  • “Part1”团队中的开发人员应该使用包含part1的part1.sln。它引用Common中的东西,应该能够构建那些东西(对于part2等也是如此)
  • 如果“Common”团队中的dev创建了一个新的“CommonLibrary3”项目,我只想更新Common.sln - 我不想触及Part1.sln等。
  • TFS构建应始终构建所有内容

非要求:

  • 只是第1部分的TFS构建。所有这些都是一个项目,并且总是一起发布。
  • 分开管理。

我知道的次优解决方案:

  • 将Common.sln添加到part1.sln - 似乎VS只是将所有项目从Common.sln复制到part1.sln中,因此以后加入Common的项目不包括在内。

  • 使用MSBuild目标文件替换解决方案文件 - http://sedodream.com/2010/03/19/ReplacingSolutionFilesWithMSBuildFiles.aspx。我想这可行,但我希望开发人员从VS更新解决方案,而不是手动编辑MSBuild文件。

我发现TFS指南书籍称之为“分区解决方案”,但没有具体说明如何实现它。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在TFS 2010构建定义中,您可以参考:

  • 要包含在构建工作区中的多个源控制文件夹
  • 要在构建过程中构建的多个解决方案文件

所以(如果我理解你的问题),关于TFS团队建设你没有问题。

您唯一的挑战是(可能)在第1部分或第2部分开发人员的任何开发系统上,开发人员应该也能够构建Common.sln。只要该开发人员具有对公共分支的读访问权,本地工作空间就可以包含两个源代码库,并且两者都可以由开发人员构建。

所以:

  • Common developer拥有对Common的RW访问权限,只能访问Part1或Part2(以测试更改的影响),
  • Part1开发人员可以访问对Part1的Common,RW访问权限,对部件2没有或R访问权限,
  • Part2开发人员可以访问Part1的Common,no或R访问权限以及对Part2的访问权限

这应该可以启用您的方案。