2009-12-11 4 views

Antwort

18

Ich denke, Sie könnten die Xmlpoke Aufgabe verwenden. Zum Beispiel, wenn Ihre web.config ist

Dann könnten Sie eine Aufgabe zu Ihrer Build-Datei wie folgt hinzufügen.

<xmlpoke 
    file="path_to_your_web_root\Web.config" 
    xpath="/configuration/connectionStrings/add[@name='myDb']/@connectionString" 
    value="your_connection_string" /> 

Oh, hier ist die Dokumentation der xmlpoke Aufgabe. http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html

+0

Es scheint nicht zu funktionieren, wenn ConnectionString Leerzeichen enthalten :( – sinsedrix

5

Ich nehme an, dass Sie dies tun möchten, damit die Verbindungszeichenfolge auf eine Produktionsumgebung und nicht auf eine Entwicklungs- oder Testumgebung verweist, wenn Nant den Freigabecode erstellt. Normalerweise habe ich einen anderen Ansatz, um dieses Szenario zu lösen. behalte die Verbindungszeichenfolgen in einer separaten Datei. Sie können dies tun, indem Sie das configSource Attribut:

<!-- point out a file containing the connectionStrings config section --> 
<connectionStrings configSource="connections.config"></connectionStrings> 

Die connections.config Datei soll wie folgt aussehen:

<?xml version="1.0"?> 
<connectionStrings> 
    <add name="myDb" connectionString="{your connection string}"/> 
</connectionStrings> 

Da die Verbindungszeichenfolgen selten in der Produktionsumgebung ändern, um die Datei connections.config kann dann in der Regel von der Bereitstellung ausgeschlossen werden.

+0

Nant Documentation beschrieben Gibt es eine ähnliche Art und Weise Datenbank/Datenquelle/Connection in sqlmap.config zu setzen? – sinsedrix

1

Ich verwende einen einfachen Weg. Ich habe viele Versionen der Konfigurationsdatei vorbereitet, die jeweils eigene Verbindungszeichenfolgen enthalten (DEV, TEST, PRODUCTION). Wenn ich im NANT-Skript verschiedene Ziele erstelle, kopiere ich die spezifische Konfigurationsdatei, um die Standardkonfiguration zu überschreiben.

2

Eine andere Alternative besteht darin, eine Vorlage zu verwenden, bei der anstelle der Verbindungszeichenfolge ein Token verwendet wird, z.

<connectionString> 
    <add name="myDb" connectionString="@[email protected]" /> 
</connectionStrings> 

Verwenden Sie dann Filterketten, um dies durch die entsprechende Zeichenfolge zu ersetzen.

<copy file="Web.config.template" tofile="Web.config" overwrite="true"> 
    <filterchain> 
     <replacetokens> 
      <token key="CONNECTION_STRING" value="${ConnectionString}" /> 
     </replacetokens> 
    </filterchain> 
</copy> 

Der Wert der ConnectionString-Eigenschaft hängt vom Buildtyp ab.

Filterchains sind in der

+0

Wunderbar einfache Erweiterungslösung. –

Verwandte Themen