0

我们有一个大型 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 版本。

希望我在这里有意义:-)

4

1 回答 1

0

如果您使用的是 Visual Studio 2012 和 Web 项目,则可以使用配置转换为不同的环境发布构建。

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

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

于 2013-09-05T21:02:24.413 回答