Deployment TFS-部署不同分支的测试版本

Deployment TFS-部署不同分支的测试版本,deployment,tfs,msdeploy,branching-and-merging,Deployment,Tfs,Msdeploy,Branching And Merging,我正在寻找一种很好的方法来管理部署到同一代码库的多个分支的测试环境。 我的设置包括一个主分支和几个开发分支: 主要的 Dev1功能集1 Dev2功能集2 等 这些都是持续集成过程的一部分,在该过程中,它们每天都被部署以进行测试。 目前有一个测试配置,带有相应的Web.config转换和发布配置文件,它控制诸如连接字符串Web.config和位置之类的内容,以便在发布配置文件中将应用程序部署到MSDeploy配置中 在合并开始之前,一切都很顺利。一旦我们开始合并代码,不同的Web.config转换

我正在寻找一种很好的方法来管理部署到同一代码库的多个分支的测试环境。 我的设置包括一个主分支和几个开发分支:

主要的 Dev1功能集1 Dev2功能集2 等 这些都是持续集成过程的一部分,在该过程中,它们每天都被部署以进行测试。 目前有一个测试配置,带有相应的Web.config转换和发布配置文件,它控制诸如连接字符串Web.config和位置之类的内容,以便在发布配置文件中将应用程序部署到MSDeploy配置中

在合并开始之前,一切都很顺利。一旦我们开始合并代码,不同的Web.config转换和发布配置文件不可避免地会混淆,Visual Studio会愉快地合并所有内容,而不会发现冲突,从而导致出现诸如将主分支部署到Dev1位置,或使用Main的连接字符串配置Dev2应用程序等情况

我可以想出一个解决方案,为每个分支创建一个解决方案配置,以及相应的Web.config转换和发布配置文件。这肯定会使所有问题保持分离和安全,避免合并问题,但它会在所有地方创建大量新的配置文件。除此之外,它还使得创建或删除分支的任务更加复杂


还有其他方法吗?

您应该看看Visual Studio 2013的版本管理。您可以在要部署到的每个环境中使用不同的变量配置发布管道

然后您将只有两个转换。一个是缺省值,用于本地主机开发。第二个用于包含RM可替换变量的生成服务器


我建议您将思想从代码升级转移到二进制升级。