我对TFS上的工作区有疑问。目前,我正在使用TFS 2008(虽然我很快将迁移到TFS 2010),我有两个工作区:
Workspace1和Workspace2每个都包含不同的应用程序,它们有不同的用途,不同的用户群,不同的开发人员对它们进行操作等等。因此,决定这两个应用程序应该驻留在它们自己的工作空间中,以便支持单独的构建管理,单独的权限等。但是,过去一些糟糕的规划已经在Workspace1中创建了对Workspace2的依赖。为了使Workspace1内的应用程序能够编译,它需要在Workspace 2中引用一些程序集。所以,它今天看起来像这样:
现在,我想看看是否有“最好”的方法来尝试完成以下任务:
我知道这两个目标相互冲突,但我很难决定该怎么做。也许我的整个问题是我使用工作区错了。或者,也许我正确地使用它们,并且这个问题没有真正的答案。我不知道。
所以,我的问题实际上有三个:
答案 0 :(得分:2)
二进制文件不是源代码,不应检入源代码管理(IMHO)。
答案 1 :(得分:1)
我认为这取决于Workspace 1在Workspace 2上的引用类型。如果引用的程序集采用“第三方”样式 - 我的意思是,不经常更新并且具有相当不变的API,以同样的方式引用互联网上的图书馆。如果是这种情况,我会将Workspace 2中构建的二进制文件签入到可以引用它们的文件夹中的Workspace 1中。每当对Workspace 2二进制文件进行更新时,请检查Workspace 1中的文件,将构建的文件复制到顶部并检查它们。
如果Workspace 2程序集的代码和API经常更改,那么您有2个选择。
答案 2 :(得分:1)
从很久以前我花了很多时间在源代码管理中找到文件的最佳结构,在阅读了p& p指南之后,它向我展示了我需要的所有内容,比如在源代码管理中构建项目和解决方案,分支和合并策略,管理Visual Studio Team System中的源代码控制依赖关系以及许多其他有用的东西,您可以从codeplex下载它,点击以下链接 http://tfsguide.codeplex.com/
答案 3 :(得分:1)
你有几个选择都需要权衡。
将“共享代码”拆分为单独的TFS项目。正如约翰所说,从共享项目构建的放置位置获得每个依赖应用程序引用。
将“共享代码”放置在与开发/发布周期最顺序的项目中。我指的是与其共享共同开发团队,共同发布周期和常见工作项规范的项目。是否有其他依赖项目从此项目放置位置引用该程序集。
将“共享”代码的所有项目与公共库放在一个TFS项目中,以及“共享代码”。如有必要,为每个VS解决方案创建单独的构建。如果有必要,甚至可以锁定签入共享解决方案/项目的能力。