【发布时间】:2016-08-01 16:58:11
【问题描述】:
我有一个严重异常的 Web.config 转换。我的 web.config 如下所示:
<configuration>
<configSections> </configSections>
<appSettings> </appSettings>
<connectionStrings> </connectionStrings>
<system.web> </system.web>
<runtime> </runtime>
<system.webServer> </system.webServer>
<entityFramework> </entityFramework>
<elmah> </elmah>
<applicationSettings>
<MySite.Properties.Settings>
<setting name="CommandTimeout" serializeAs="String">
<value>180</value>
</setting>
<setting name="LoginServerUrl" serializeAs="String">
<value>mydevsite.com</value>
</setting>
</MySite.Properties.Settings>
</applicationSettings>
</configuration>
当我认为我应该能够得到它时:
<MySite.Properties.Settings>
<setting name="LoginServerUrl" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
<value>myqasite.com</value>
</setting>
</MySite.Properties.Settings>
但是当我这样做时,它会替换第一个设置(命令超时)并将第二个设置留在那里,这样我就有 2 个 loginserverurl 设置并且没有命令超时!
我可以让它将 mydevsite.com 转换为 myqasite.com 的唯一方法是创建一个执行此操作的转换:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<customErrors mode="Off" xdt:Transform="Replace">
<error statusCode="404" redirect="~/Error/Error404"/>
</customErrors>
</system.web>
<applicationSettings>
<MySite.Properties.Settings>
<setting name="LoginServerUrl" xdt:Transform="Remove" xdt:Locator="Match(name)"/>
<setting name="CommandTimeout" xdt:Transform="Insert" serializeAs="String">
<value>180</value>
</setting>
<setting name="LoginServerUrl" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
<value>myqasite.com</value>
</setting>
</MySite.Properties.Settings>
</applicationSettings>
</configuration>
我在这里做错了吗?
【问题讨论】:
标签: xml visual-studio-2015 web-config web.config-transform