【发布时间】:2015-09-21 08:48:35
【问题描述】:
我有几个环境的 web.config 转换。在配置文件中,我有一个 applicationSettings 部分,其中包含几个设置和值对。
我已尝试根据用于匹配名称和更改连接字符串以匹配设置并更改值的语法,但转换失败。这是可能吗?
所以我的 web.config 有:
<applicationSettings>
<AppName.My.MySettings>
<setting name="setting1" serializeAs="String">
<value>Initial Value</value>
</setting>
</AppName.My.MySettings>
</applicationSettings>
我的转换文件有
<applicationSettings>
<add name="setting1" value="Changed Value" xdt:Transform="SetAttributes" xdt:Location="Match(name)"/>
</applicationSettings>
我在预览转换时没有收到任何错误,但连接字符串设置已转换,但 setting1 的值不是。任何帮助表示赞赏。
更新
<applicationSettings>
<add name="setting1" value="Changed Value" xdt:Transform="Replace" xdt:Location="Match(name)"/>
</applicationSettings>
不幸的是同样的问题...没有错误也没有转换。
解决方案 我确实忘记提及我有多个设置,所以标记的答案是部分解决方案......这就是我做的...... Web.Config...
<applicationSettings>
<AppName.My.MySettings>
<setting name="setting1" serializeAs="String">
<value>Initial Value 1</value>
</setting>
<setting name="setting2" serializeAs="String">
<value>Initial Value 2</value>
</setting>
<setting name="setting3" serializeAs="String">
<value>Initial Value 3</value>
</setting>
</AppName.My.MySettings>
</applicationSettings>
转换文件
<applicationSettings xdt:Transform="Replace">
<AppName.My.MySettings>
<setting name="setting1" serializeAs="String">
<value>CHANGED VALUE 1</value>
</setting>
<setting name="setting2" serializeAs="String">
<value>Initial value 2</value>
</setting>
<setting name="setting3" serializeAs="String">
<value>CHANGED VALUE 3</value>
</setting>
</AppName.My.MySettings>
</applicationSettings>
请注意,我必须包含所有嵌套设置和值,即使其中一些没有像我的示例中的设置 2 那样发生变化。
【问题讨论】:
-
value 是节点不是属性,必须使用 Transform="Replace"
-
@Andreas ...请查看我的更新.. 仍然不高兴。
标签: .net web-config web.config-transform