【发布时间】:2013-06-18 09:54:23
【问题描述】:
我使用teamcity 将我们的Web 应用程序部署到使用msbuild 和webdeploy 的多个服务器。
我有每个客户/环境组合的配置 - 例如:
Internal-Dev
Customer1-Test
Customer1-Pilot
Customer1-Live
Customer2-Test
Customer2-Pilot
Customer2-Live
我只需要这些配置,以便部署过程可以使用 web.config 转换为安装设置适当的连接字符串和其他设置。
我遇到的问题是我有一个共享的 Web 服务器控件项目,它实际上只需要两个配置 - debug 和 release - 但我需要将上述所有配置复制到这个项目中才能获得它们去工作。如果我从共享项目中删除 Customer2-Pilot,我将无法部署到客户 2 的试验服务器,因为它正在寻找不存在的共享项目的 Customer2-Pilot 配置。
目前,我将应用程序的配置名称复制到共享项目中,但这是不切实际的,因为我们有多个应用程序,每个应用程序都针对不同的客户,因此共享项目可以获得数十个配置,这些配置都是 Release 或 Debug 的副本
我希望能够配置构建系统,以便我可以说 Web 应用程序项目的 Internal-Dev 配置使用共享项目的 Debug 配置,所有其他配置使用共享项目的 Release配置。这可以在 IDE 中使用,使用可以将解决方案配置与单个项目配置相关联的配置管理器,但我不确定如何在 teamcity 中执行此操作。
我当前的 teamcity 配置是使用 MSBuild 运行器和 Web 应用程序的 project 文件作为构建文件路径,并设置配置参数以将其部署到相关服务器,并在其后进行正确配置已建成。共享项目位于 Web 应用程序存储库的子存储库中,因此可以自动获取和构建。
有什么方法可以改变这个设置来得到我想要的吗?我是否需要将构建文件路径更改为解决方案而不是项目,以便我可以使用配置管理器设置来配置它?
【问题讨论】:
标签: visual-studio-2010 msbuild teamcity webdeploy