如何对跨项目共享的资源进行版本控制

bet*_*all 4 asp.net version-control build-automation tfs branch

我们使用Team Foundation Server并拥有大量ASP.NET Web应用程序项目.每个Web应用程序都使用我们内部开发的自定义内容管理系统.CMS本身就是一个ASP.NET Web应用程序.

部署后,CMS驻留在子目录中,例如"/ Admin".CMS由.aspx和ascx文件组成,相应的程序集当然放在bin中.

目前,CMS文件分别存在于源代码管理中的每个Web App.换句话说,每个依赖于CMS的Web应用程序中都存在"Admin"文件夹.这带来了明显的挑战,因为必须将对CMS的更新分发到每个依赖站点.我的工作是自动化/简化流程.

我们目前不执行任何自动构建.我对TFS中的源代码控制分支知识有限,我不确定它是否适用于这种情况.确保依赖项目从CMS项目接收最新程序集和标记的最佳方法是什么?提前致谢.

听起来像#2(来自'bamboo)是我追求的解决方案.鉴于共享代码已经存在于每个单独的项目中,您是否可以简要描述我将进行"分支/共享"CMS的过程?此外,值得注意的是,我不希望.cs文件传播到依赖项目,只是标记和程序集.这会改变策略吗?我应该首先在共享项目上创建一个构建事件,以将必需的文件复制到"Release"文件夹,然后分支Release文件夹吗?

Dan*_*boo 7

有两种流行的方法来处理这种情况.

  1. 将共享内容的TFS项目映射到每个应用程序工作区,然后在每个应用程序解决方案中包含共享项目.如果您希望所有团队/应用程序在构建时立即获得共享更改,请使用此方法,因为他们也将获得最新的共享内容.

  2. 将共享内容分支/共享到每个应用程序源控制树中.这在TFS中很容易做到.如果每个团队/应用程序想要控制何时获得最新的共享内容,这真的很好.这使得团队能够做好自己的事情,直到他们准备好整合共享的东西.

我通常总是喜欢#2.但这实际上取决于您需要/想要工作的具体情况.