2010-04-02 4 views
19

Ich bin es gewohnt, Web-Deployment-Projekte zu verwenden. Zurzeit entwickle ich eine neue Webanwendung mit VS2010 und möchte versuchen, mit den neuen web.config-Prinzipien und den Deployment-Problemen klarzukommen.Wie verwendet man applicationSettings in der neuen Konfiguration web.config in VS2010?

Wie kann ich eine einfache Einstellung wie

<applicationSettings> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String"> 
    <value>True</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

ich ersetzen will diese Einstellung muß in Debug auf True gesetzt werden, und falsch in Release. Wie müssen die Einträge in der Web.Debug.config und Web.Release.Config aussehen?

Und übrigens: Gibt es Dokumentation über das neue Problem web.config? Ich kann nicht nach den richtigen Keywords suchen.

Antwort

13

Sie könnten auch auf diese Weise verwenden; für die Produktumgebung zum Beispiel.

<applicationSettings xdt:Transform="Replace"> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String"> 
    <value>False</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

Grüße.

+0

Da musste ich noch Folgendes herausfinden: Eine Transformation gilt nur für die Veröffentlichung einer Website/Anwendung, nicht beim Erstellen/Kompilieren. –

3

Sie sollten diese Einstellung in beide Webkonfigurationsdateien - Web.Debug.config und Web.Release.config kopieren und die Transformationsattribute xdt:Transform="SetAttributes" xdt:Locator="Match(name)" eingeben.

Sie können dieses Video-Tutorial - http://chriskoenig.net/index.php/2010/04/08/how-do-i-web-config-transformations-in-vs2010/

Hoffnung, das hilft.

+0

Dank Sie sehr viel =) – citronas

+0

das ist Ich bin froh, zu helfen :) – Thea

+4

Leider haben vielleicht nicht die richtige Antwort. "SetAttributes" legt nur die Attribute fest. Wenn Sie den Wert ändern möchten, müssen Sie "Ersetzen" verwenden! –

45

Der beste Weg wäre folgendes zu tun:

<applicationSettings> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)"> 
    <value>True</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

Anstatt Zubeyir Vorschlag wie diesem werden nur die specifed ersetzen Einstellung anstatt ersetzt die Gesamtheit des application Abschnitt.

+1

yep um genauer zu sein Jonathan Stanton Vorschlag ist die beste Antwort, weil die Antwort Zubeyir vorgeschlagen wird, alle applicationSettings zu ersetzen, und wenn Sie Ihre Debug-Version aktualisieren, indem Sie neue Einstellungen hinzufügen und Sie vergessen, die Release-Version sowie alle Dinge gut mit Release zu ersetzen Version von Webconfig – Kiarash

1

Hier ist ein Link mit vielen Beispielen zu diesem Thema: http://msdn.microsoft.com/en-us/library/dd465326.aspx.

Es scheint jedoch ein Problem vor allem mit Web.config-Transformationen und applicationSettings zu geben: Alle Antworten auf diese Abfrage mit xdt-Transform=“Replace” haben das Problem, dass sie zusätzliche Leerzeichen in die bereitgestellte Web.config wegen XML-Formatierung einführen. Dies führt zu fehlerhaftem Verhalten, wenn Sie die resultierenden Einstellungen konsumieren. Es scheint keine Lösung zu geben. Hier ist meine unbeantwortete Frage zu diesem Problem: VS 2010 configuration transformation produces unwanted white space during deployment.

Verwandte Themen