当前位置:编程学习 > 其它> 正文

Web.Release.config 和 Web.Debug.config

时间:2015-4-16类别:编程学习

Web.Release.config 和 Web.Debug.config

Web.Release.config 和 Web.Debug.config

通过在web.release.config或web.debug.config中按指定的格式查找和替换节点内容,可以实现web.config按生成环境的不同生成不同的版本,方便调试和发布。

在开发asp.net应用程序时,往往想在debug和release环境下使用不同的配置,而web.config文件却只有一个,我们可以在Web.Debug.config中写下debug环境下的配置,然后在web.release.config中写下release环境下特有的配置。

一、Web.Release.config 和 Web.Debug.config实例

1、Web.Release.config 的配置文件

 

  •    复制
  • 
    <?xml version="1.0" encoding="utf-8"?>
    
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <!--
        In the example below, the "SetAttributes" transform will change the value of 
        "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
        finds an attribute "name" that has a value of "MyDB".
          -->
      <connectionStrings>
        <add name="AppConnection"
          connectionString="发布环境连接字符串"
          xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
      </connectionStrings>
    
    </configuration>
    
    		
  • 2、Web.Debug.config 的配置文件

  •  
  •  
  •    复制
  • 
    <?xml version="1.0" encoding="utf-8"?>
    
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <!--
        In the example below, the "SetAttributes" transform will change the value of 
        "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
        finds an attribute "name" that has a value of "MyDB".
          -->
      <connectionStrings>
        <add name="AppConnection"
          connectionString="测试环境连接字符串"
          xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
      </connectionStrings>
    
    </configuration>
    
    		
  • 3、Web.config 的配置文件

  •  
  •  
  •    复制
  • 
    <?xml version="1.0" encoding="utf-8"?>
    
    <configuration>
        <connectionStrings>
        <add name="AppConnection" connectionString="默认连接字符串"/>
        <add name="TestCommon" connectionString="公共使用的连接字符串"/>
      </connectionStrings>
      <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
      </system.web>
    </configuration>
    
    						
  • 4、发布 后Web.config 的配置文件

  •   
  •    复制
  • 
    <?xml version="1.0" encoding="utf-8"?>
    
    <configuration>
      <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      </appSettings>
      <connectionStrings> <!--注意这里的字符串变了,变成了release配置文件中的字符串 -->
        <add name="AppConnection" connectionString="发布环境连接字符串"/>
        <add name="TestCommon" connectionString="公共使用的连接字符串"/>
      </connectionStrings>
      <system.web>
        <compilation targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
      </system.web>
    </configuration>
    
    						
  •  

    二、配置说明

    xdt:Transform="SetAttributes" xdt:Locator="Match(name)" 的意思

    把Web.config中connectionStrings对应name为AppConnection的节点属性替换。

     

    1、locator属性

    1)Match

    用匹配的属性名去替换Web.config中的属性值

    例如:Web.config中找到匹配name为Norhwind的节点值替换为相应配置文件的值

     

  • 
    <connectionStrings>
    <add name="Northwind" connectionString="connection string detail"
        providerName="System.Data.SqlClient"
        xdt:Transform="Replace"
        xdt:Locator="Match(name)" />
    </connectionStrings>
    
    		
  • 2)Condition

    基于XPath,在Locator可以用表达式判断匹配

     

  • 例如:将web.config中Name属性匹配‘Norhwind’的或providerName匹配System.Data.SqlClient的配置文件节点都替换
  •  
  •  
  • 
    <connectionStrings>
    <add name="Northwind"
        connectionString="connection string detail"
        providerName="System.Data.SqlClient"
        xdt:Transform="Replace"
        xdt:Locator="Condition(@name=’Northwind or @providerName=' System.Data.SqlClient')" />
    </connectionStrings>
    
    		
  •  

    2、 Transform 属性

    1)Replace 表示所有匹配的节点都是替换

    2)Remove 删除第一匹配的元素。

    3)RemoveAll

    4)Insert 插入从父节点中插入

    例如:authorization中插入<deny users="*" />

     

  • 
    <authorization>
    <deny users="*" xdt:Transform="Insert"/>
    </authorization>
    
    		
  • 5)SetAttributes 设置属性值

     

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐