引言
.Net默认的方案配置有Debug和Release两种,Debug一般用于开发及测试环境,Release一般用于线上生产环境。在平时的工作当中,不同的环境的配置各不相同,如开发使用的是测试数据库,线上使用的是生产数据库,一般的做法就是首次根据不同环境手动修改配置文件,打包发布的时候,不替换web.config文件。笔者曾多次遇到生产环境当中的web.config被测试环境所替换,导致服务停用的情况。这里和大家分享一条经验:一切需要人工处理的事务,都有可能出错且必然会发生。
在使用JAVA的时候,Maven可以根据不同的环境,使用不同的配置文件(参考:Maven打包不同的环境)。那么ASP.NET 要怎么实现呢?
转换
对于 Web 应用程序项目,ASP.NET 提供了一些工具,用于自动完成在部署这些项目时更改(转换)Web.config 文件的过程。
对于要部署到的每个环境,您将创建一个转换文件,该文件仅指定原始 Web.config 文件和适用于该环境的已部署 Web.config 文件之间的差异。参考用于 Web 应用程序项目部署的 Web.config 转换语法
注
configuration元素的xmlns要用web.config的一致,如果没有则需要手动加上,否则将替换不成功,会出现
警告 : 源文档中没有元素与“/configuration”匹配