如何在TFS中为特定环境设置构建

时间:2013-09-05 03:33:27

标签: tfs2012 tfsbuild

我们有一个大型Web应用程序,它使用TFS 2012连续运行单元测试,bdd测试并生成通用构建。我们的环境(UAT,Pre-Prod等)位于dmz中,对我们的开发基础设施的访问权限有限,除了我们可以调用一个查询TFS服务器并获取通用构建的powershell脚本。然后我去修改相关环境的配置,这是一个重复且容易出错的任务。

我们的网络应用程序有多个配置文件,我正在使用Slow Cheetah创建特定于环境的转换,例如。 ConnectionsStrings.UAT.Config等。我想要的是在TFS中设置构建质量,它将参数/ p:EnviroTarget =“UAT”传递给MSBuild并应用适当的变换,从而产生适当标记的特定于环境的构建。我有一个转换工作我的本地机器,我手动指定哪个EnviroTarget(以及哪个配置转换应用)。

我的问题是如何根据构建质量的变化调用MSBuild创建新构建,以便可以在独立于开发人员工作站的CI服务器上创建这些构建吗?

这种事情有可能吗?我知道一个名为TFSDeployer的项目,我原本计划查看 - 但是如果需要作为代理运行,那么它必须能够始终与所有环境中的TFS进行通信 - 这对我们来说似乎是一个困难的障碍。网络。更简单的选择(在我看来)是通过PowerShell在UAT服务器上引入最新的UAT版本。

希望我在这里有道理: - )

1 个答案:

答案 0 :(得分:0)

如果您使用的是visual studio 2012和Web项目,则可以使用config transform发布不同环境的构建。

http://www.hanselman.com/blog/TinyHappyFeatures3PublishingImprovementsChainedConfigTransformsAndDeployingASPNETAppsFromTheCommandLine.aspx

使用发布配置文件将不同的环境构建到不同的文件夹中。然后编写power shell脚本来获取构建并更新你的UAT或其他环境。