it-swarm.com.de

Ändern des Attributwerts im Abschnitt "appSettings" mit der Web.config-Umwandlung

Ist es möglich, die folgende Datei Web.config appSettings zu transformieren:

<appSettings>
    <add key="developmentModeUserId" value="00297022" />
    <add key="developmentMode" value="true" />
    /* other settings here that should stay */
</appSettings>

in so etwas:

<appSettings>
    <add key="developmentMode" value="false" />
    /* other settings here that should stay */
</appSettings>

Also muss ich den Schlüssel developmentModeUserId entfernen und den Wert für den Schlüssel developmentMode ersetzen.

244
dragonfly

Sie möchten etwas wie:

<appSettings>
  <add key="developmentModeUserId" xdt:Transform="Remove" xdt:Locator="Match(key)"/>
  <add key="developmentMode" value="false" xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"/>
</appSettings>

Siehe auch: Web.config-Transformationssyntax für die Bereitstellung von Webanwendungsprojekten

429
Joe

Wenn Sie Ihre App-Einstellung von der Webkonfigurationsdatei in die Datei web.Release.config umwandeln möchten, müssen Sie die folgenden Schritte ausführen. Lassen Sie Ihre web.config-App-Einstellungsdatei

<appSettings>
     <add key ="K1" value="Debendra Dash"/>
  </appSettings>

Hier ist nun die web.Release.config für die Transformation.

<appSettings>
    <add key="K1" value="value dynamicly from Realease"
       xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"   
         />
  </appSettings>

Dadurch wird der Wert von K1 im Realese-Modus in den neuen Wert umgewandelt.

9
Debendra Dash

Ersetzen aller AppSettings

Dies ist der Overkill-Fall, bei dem Sie nur einen ganzen Abschnitt der web.config ersetzen möchten. In diesem Fall ersetze ich alle AppSettings in der web.config durch neue Einstellungen in der web.release.config. Dies ist meine Grundeinstellung für die web.config-App:

<appSettings>
  <add key="KeyA" value="ValA"/>
  <add key="KeyB" value="ValB"/>
</appSettings>

Jetzt werde ich in meiner Datei web.release.config einen Abschnitt appSettings erstellen, mit der Ausnahme, dass ich das Attribut xdt: Transform = ”Replace” einbinde, da ich nur das gesamte Element ersetzen möchte. Ich musste xdt: Locator nicht verwenden, da es nichts zu lokalisieren gibt. Ich möchte nur den Schiefer sauber wischen und alles ersetzen.

<appSettings xdt:Transform="Replace">
  <add key="ProdKeyA" value="ProdValA"/>
  <add key="ProdKeyB" value="ProdValB"/>
  <add key="ProdKeyC" value="ProdValC"/>
</appSettings>

Beachten Sie, dass mein Abschnitt "appSettings" in der Datei "web.release.config" drei statt zwei Schlüssel enthält und die Schlüssel nicht einmal dieselben sind. Schauen wir uns nun die generierte Datei "web.config" an, was passiert, wenn wir veröffentlichen:

<appSettings>
   <add key="ProdKeyA" value="ProdValA"/>
   <add key="ProdKeyB" value="ProdValB"/>
   <add key="ProdKeyC" value="ProdValC"/>
 </appSettings>

Wie erwartet wurden die web.config appSettings komplett durch die Werte in der web.release config ersetzt. Das war einfach!

9
Joe