我正在使用和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
我希望能够配置构建系统,以便我可以说Internal-Dev
Web 应用程序项目的配置使用共享项目的Debug
配置,而所有其他配置都使用共享项目的Release
配置。这可以在 IDE 中使用,配置管理器可以将解决方案配置与单个项目配置相关联,但我不确定如何从teamcity
.
我当前的 teamcity 配置使用MSBuild
带有 Web 应用程序项目文件的运行器作为构建文件路径,并设置配置参数以在构建后将其部署到具有正确配置的相关服务器。共享项目位于 Web 应用程序存储库的子存储库中,因此可以自动获取和构建。
有什么办法可以改变这个设置来得到我想要的吗?我是否需要将构建文件路径更改为解决方案而不是项目,以便我可以使用配置管理器设置来配置它?