Webconfiguration转换添加一个子元素

我在web.config中有以下configuration:

<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元素添加为插件元素的子元素(有效地取消上述注释)?

我很熟悉如何做基本的转换,但从来没有这样做过。

您可以使用Insert转换:

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

Web应用程序项目部署的Web.config转换语法

如果你想使用XSLT来做,那么这里有一些指导,因为我现在没有时间来敲掉它。

  1. 查找身份转换。 这会给你一个简单的XSLT,它重复读取的内容。
  2. 在通用模板上方添加一个模板, match="add[@name='MvcRoutingShim']"如下match="add[@name='MvcRoutingShim']"
  3. 在模板内部使用xsl:copy输出正在处理的元素,然后输出AzureReader添加元素

这应该让你去。

确保你有一个XML编辑器,允许你做转换,所以你可以在本地进行实验,直到你做对了。