2013-04-22 14 views
9

Ich versuche, verschiedene Konfigurationsdateien für verschiedene Fälle (Debug, Release, etc.) zu machen, und ich möchte einige Einstellungen für verschiedene Builds ändern.Wie kann ich web.config-Werte transformieren?

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

Wie kann ich den Wert innerhalb des Tags auf etwas anderes ändern?

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

Können Sie etwas klar zu erklären? –

+0

in web.config Ich habe den folgenden Code. In web.conf2.config möchte ich den Wert zu customer2 ändern. Ich weiß, dass Attribute über xdt transformiert werden können, ich frage mich, ob wir das auch für Werte anwenden können. – dare2k

+0

Ich suche nach etwas wie Erwin vorgeschlagen. – dare2k

Antwort

0

Verwendung Web config transformations:

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

Ich habe versucht, xdt: Transform = "Replace" in diesem Tag, aber ändert nichts innerhalb des Werts – dare2k

+0

Haben Sie die zweite Konfiguration durch Rechtsklick auf das Original und wählen Sie "Add config transforms"? – Erwin

+0

Ja, Ich habe es sogar über diese Website webconfigtransformationtester.apphb.com versucht, ersetzt nichts – dare2k

0

Sie benötigen für Ihre Web.Config XML

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

Dann testen Sie es mit der Vorschau der Transformation in den vollständigen Pfad setzen Transmenüoption

4

Ändern Sie Ihre Konfiguration wie folgt:

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

    </applicationSettings> 
</configuration> 

Und wie diese Transformation machen:

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

Sie sind also nicht wirklich der Wert inneren Text so viel wie mit dem richtigen Wert für jede Build-Konfiguration wählen Sie erstellen „ändern“.

+0

Dieses funktioniert groß, wenn Sie alles im Abschnitt ersetzen möchten. –

12

hinzufügen xdt:Locator="Match(name)" zu 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

Dies funktioniert:

<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> 
Verwandte Themen