有时候我们开发与发布Web应用程序时Web.Config中的配置可能不一样,比如数据库连接字符串。那在发布时想自动替换Web.config文件的内容如何办呢?
解决方法:
1、展开Web.Config文件时,可以看到Web.Debug.Config与Web.Release.Config这两个文件
Web.Debug.Config是用来在Debug状态下用来替换Web.config文件中的内容。
Web.Release.Config是用来在Release状态下用来替换Web.Config文件的内容。
比如:Web.Config有如下数据库连接字符串
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"/>
</connectionStrings>
在Web.Release.Config文件中添加如下代码:
<?xml version="1.0"?>
<!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb2.mdf;User Instance=false"
providerName="System.Data.SqlClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
注意文件中xdt:Transform和xdt:Locator
这样在发布Web项目应用程序时,就会替换Web.Config对应的数据库连接字符串
Transform与Locator的用户请参考
http://msdn.microsoft.com/zh-cn/library/dd465326(v=vs.100).aspx