2013-04-22 18 views
9

Próbuję tworzyć różne pliki konfiguracyjne dla różnych przypadków (debugowanie, wydanie, itp.) I chciałbym zmienić niektóre ustawienia dla różnych kompilacji.Jak mogę przekształcić wartości web.config?

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

Jak zmienić wartość wewnątrz znacznika na coś innego?

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

można wyjaśnić trochę jaśniej? –

+0

w web.config Mam następujący kod. W web.conf2.config chcę zmienić wartość na customer2. Wiem, że atrybuty mogą być przekształcane przez xdt, zastanawiam się, czy możemy zastosować to również dla wartości. – dare2k

+0

Szukam czegoś, co zasugerował Erwin. – dare2k

Odpowiedz

0

Zastosowanie Web config transformations:

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

Próbowałem umieścić xdt: Transform = "Zamień" w tym tagu, ale nic nie zmienia w wartości – dare2k

+0

Czy dodałeś drugą konfigurację klikając prawym przyciskiem myszy na oryginalną i wybierając "Dodaj przekształcenia konfiguracji"? – Erwin

+0

Tak, Próbowałem nawet przez tę stronę webconfigtransformationtester.apphb.com, nie zastępuje niczego – dare2k

0

Trzeba umieścić przekształcić w pełną ścieżkę dostępu do pliku web.config XML

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

następnie przetestować go za pomocą opcji menu Podgląd Transform

4

Zmień konfigurację tak, aby wyglądała następująco:

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

    </applicationSettings> 
</configuration> 

i zrobić przekształcić tak:

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

Więc naprawdę nie są „zmiana” wartość wewnętrzną tekst tyle jako mające to wybrać odpowiednią wartość dla każdej konfiguracji tworzonej kompilacji.

+0

Działa to świetnie, jeśli chcesz zastąpić wszystko w sekcji. –

12

Dodaj xdt:Locator="Match(name)" do 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

to działa:

<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> 
Powiązane problemy