Web Config转换以添加子元素

时间:2012-06-14 12:15:37

标签: asp.net web-config web-config-transform

我在web.config中有以下配置:

  <resizer>
    <sizelimits imageWidth="0" />
    <plugins>
      <add name="MvcRoutingShim" />
      <!--<add name="AzureReader" connectionString="DataConnectionString" /> -->
      <add name="DiskCache" />
      <add name="PrettyGifs" />
      <add name="AnimatedGifs" />
    </plugins>
  </resizer>

在web.config.Release中,如何将AzureReader元素添加为plugins元素的子元素(有效地取消注释上面的内容)?

我很熟悉如何进行基本的转换,但之前从未这样做过。

2 个答案:

答案 0 :(得分:187)

您可以使用Insert转换:

 <resizer>
    <plugins>
      <add name="AzureReader" connectionString="DataConnectionString" 
           xdt:Transform="Insert" />
    </plugins>
  </resizer>

Web.config Transformation Syntax for Web Application Project Deployment

答案 1 :(得分:0)

如果你想使用XSLT这样做,那么这里有一些指导,因为我现在没有时间来解决这个问题。

  1. 查找身份转换。这将为您提供一个简单的XSLT,它可以完全复制读取的内容。
  2. 使用以下匹配match="add[@name='MvcRoutingShim']"
  3. 在通用模板上方添加模板
  4. 在模板内输出使用xsl:copy处理的元素,然后输出AzureReader添加元素
  5. 这应该让你去。

    确保您拥有一个允许您进行转换的XML编辑器,以便您可以在本地进行实验,直到您做到正确为止。