2013-04-22 69 views
9

我想为不同的情况(调试,发布等)做不同的配置文件,我想改变一些设置为不同的版本。如何转换web.config值?

<configuration> 
<applicationSettings> 
<Program1.Properties.Settings> 
    <setting name="CustomerId" serializeAs="String"> 
    <value>Custormer1-13256</value> 
    </setting> 
</Program1.Properties.Settings> 
</applicationSettings> 
</configuration> 

如何将标签内的值更改为其他内容?

ex. <value>Customer2-343242</value> 
+0

你能解释清楚一点?在web.config中有 – 2013-04-22 09:16:01

+0

我有以下代码。在web.conf2.config中,我想将值更改为customer2。我知道属性可以通过xdt转换,我想知道我们是否也可以将它应用于值。 – dare2k 2013-04-22 10:40:06

+0

我在找Erwin建议的东西。 – dare2k 2013-04-22 10:49:33

回答

0

使用Web config transformations

<setting name="CustomerId" serializeAs="String" xdt:Transform="Replace"> 
    <value>Customer2-343242</value> 
</setting> 
+0

我试图在该标记中放入xdt:Transform =“Replace”,但不会更改任何值 – dare2k 2013-04-22 10:48:59

+0

您是否已通过右键单击原始配置并选择“添加配置转换”来添加第二个配置? – Erwin 2013-04-22 10:59:01

+0

是的,我甚至试过它通过这个网站webconfigtransformationtester.apphb.com,并不取代任何 – dare2k 2013-04-22 11:03:34

0

你需要把完整路径转换为你的web.config XML

<applicationSettings> 
    <Program1.Properties.Settings> 
    <setting name="CustomerId"> 
     <value xdt:Transform="Replace">Customer2-343242</value> 
    </setting> 
    </Program1.Properties.Settings> 
</applicationSettings> 

然后使用预览变换菜单选项

测试
4

更改您的配置,如下所示:

<configuration> 
    <applicationSettings> 
    <Program1.Properties.Settings> 
     <setting name="CustomerId" serializeAs="String"> 
     <value>Custormer1-13256</value> 
     </setting> 
    </Program1.Properties.Settings> 

    </applicationSettings> 
</configuration> 

而做出变换是这样的:

<configuration> 
    <applicationSettings> 
    <Program1.Properties.Settings xdt:Transform="Replace"> 
     <setting name="CustomerId" serializeAs="String"> 
     <value>Custormer1-13256</value> 
     </setting> 
    </Program1.Properties.Settings> 
    </applicationSettings> 
</configuration> 

那么,你是不是真正的“改变”的值内文字这么多,因为有它选择为您创建的每个生成配置正确的价值。

+0

如果您要替换该部分中的所有内容,则此功能非常有用。 – 2017-03-07 00:30:38

12

添加xdt:Locator="Match(name)"Erwin's answer

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
<applicationSettings> 
    <Program1.Properties.Settings> 
     <setting name="CustomerId" serializeAs="String" xdt:Transform="Replace" 
                  xdt:Locator="Match(name)"> 
      <value>Customer2-343242</value> 
     </setting> 
    </Program1.Properties.Settings> 
</applicationSettings> 

2

这工作:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <applicationSettings> 
     <Program1.Properties.Settings> 
      <setting name="CustomerId" serializeAs="String" xdt:Locator="Match(name)" > 
       <value xdt:Transform="Replace">Customer2-343242</value> 
      </setting> 
     </Program1.Properties.Settings> 
    </applicationSettings> 
</configuration>