我有一个包含三个发布配置文件的网站解决方案,我们用它来转换每个目标环境的连接字符串:
- 测试 - 本地主机连接,无转换,默认值已签入
- 暂存 - 虚拟机环境
- 生产 - 真正的交易
我们还有一些需要针对每个环境进行转换的应用程序设置。因此,我们使用了常规的、基于构建配置的转换。
- 调试 - 暂存的转换设置
- 发布 - 生产的转换设置
当我们尝试打包测试配置文件时,这让我们陷入困境。我们将其打包,以便测试人员可以从构建工件而不是源代码在他们的系统上进行部署。但是,测试包选择了调试应用程序设置转换。
有没有办法告诉 msbuild 使用测试配置文件打包网站,但跳过配置转换?或者我应该围绕环境重新构建构建配置?(也就是说,单独保留 Debug 和 Release,并为每个环境创建一个构建配置)
命令行构建语句
我正在调试解决方案配置下构建我的测试配置,它肯定会选择转换后的Web.Debug.config
文件。没有 Web.Test.config 文件,因为 Test 是“发布配置文件”而不是构建配置。
cmd> msbuild websites.sln /t:Build /p:Configuration=Debug;Platform="Any CPU";DeployOnBuild=true;DeployTarget=Package;PublishProfile=Test;VisualStudioVersion=11.0
也许我在这里做错了什么。我确实觉得配置/平台是多余的,因为我也在“发布配置文件”对话框中提供了这些。Visual Studio 版本对我来说是一个惊喜,但它是生成 zip 包所必需的。