Web.config 转换概览(Transformation Overview)
针对web应用程序的部署,VS 2010vs引入了Web.config的转换,能够让用户将web.config从开发设置转换为产品设置。转换信息保存在类似于web.debug.config、web.release.config的配置文件中。这些配置文件的名称是由MSBuild配置环境中的属性相匹配的。如果构建时使用的是Debug那么所采用的转换配置文件为web.debug.config,如果是Release,则相应的为web.release.config,如果开发者自行设置了构建配置如Deploy,则相应转换配置文件为web.deploy.config。[添加方法:vs解决方案中默认只有一个web.config,如果需要添加转换配置文件,在项目管理窗口中,在web.config右击,选择“add config transforms”,与构建配置相应的转换配置文件自动添加到项目中。]
一个转换文件包含所有部署应用程序时需要的改变,这些改变通过使用XML属性来设置。
举个例子:
<connectionStrings xdt:Transform="Replace"><add name="DBconn" connectionString="connection string detail" />
</connectionStrings>
转换文档中与源web.config中的相对应部分是类似的,这里添加了xdt:Transform="Replace"属性,意思是用这里的connectionStrings代替源文件中的相同节点。
转换引擎是转换工作的核心,其任务如下:
找出转换XML中需要转换的节点。[引擎使用Locator属性来确定变化节点]
基于转换XML中设置的变化节点,从源XML抽取相应节点
对源XML设定的节点做相应变化,然后将转换的版本写到目标XML
转换引擎对所有其操作的XML文件都应用XML DOM,所以无论目标XML文件、源XML文件还是转换XML文件都必须是良构的XML文档。
定位器(Locator)和转换属性(Transform Attributes)
转换选项使用定义在XML-Document-Transform命名空间定义的XML属性,映射到xdt前缀,该命名空间定义了两个属性:Locator和Transform。使用web.config转换必须注册上述命名空间,注册方法如下:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
原文以及详细属性说明:
http://msdn.microsoft.com/en-us/library/dd465326(VS.100,printer).aspx