2016-05-16 9 views
3

In Visual Studio Team Services (war Visual Studio Online) habe ich drei Release-Umgebungen mit jeweils einem Azure Website Deploy-Schritt.Web.config für Azure Website Deployment für jede Release-Umgebung transformieren

Ich kann die web.config für den Build-Schritt transformieren, indem Sie die Variable "BuildConfiguration" (z. B. Uat) angeben, die die Web.Uat.config aufnimmt.

Allerdings habe ich mehrere Release-Umgebungen, die diese Build-Konfiguration verwenden, die alle die Web-Konfiguration (z. B. Dev, Test, UAT, Live) transformieren müssen.

Ist es möglich, die web config-Transformation anzugeben, die für jede Release-Umgebung vor dem Bereitstellen der Azure-Website verwendet werden soll?

Hinweis: Ich weiß, dass im Azure-Portal unter "Alle Einstellungen" für die Website einfache Appsettings und Connectionstrings angegeben werden können, aber ich muss viel mehr als nur diese einfachen Einstellungen transformieren und die Webkonfigurations-Transformationen für beide konfiguriert haben Umgebung innerhalb meiner Lösung

Antwort

5

Die Tokenizer-Aufgabe, die als Teil von Release Management Utility Tasks kommt, ermöglicht die Umwandlung von Konfigurationsdateien abhängig von der Umgebung.

Eine einzige JSON-Konfigurationsdatei, die die gesamte Konfiguration für alle Umgebungen enthält, kann verwendet werden, und die Aufgabe wird abhängig von der Umgebung automatisch die richtige Konfiguration auswählen.

{ 
    "<environment>": { 
    "CustomVariables": { 
    "Variable1": "value1", 
    "Variable2": "value2", 
    }, 
    "ConfigChanges": [ 
     { 
      "KeyName": "/configuration/appSettings/add[@key='ServiceURL']", 
      "Attribute":"value", 
      "Value":"https://ServiceURL" 
     }, 
     { 
      "KeyName": "/configuration/appSettings/add[@key='EnableDebugging']", 
      "Attribute":"value", 
      "Value":"false" 
     }, 
     { 
      "KeyName":“/configuration/connectionStrings/add[@name='databaseentities']”, 
      "Attribute": "connectionString", 
      "value": "Integrated Security=True;Persist Security Info=False;Initial Catalog=DB;Data Source=servername" 
     } 
    ] 
} 

So kann man viele Umgebungen und deren Konfiguration in einer einzigen JSON-Datei und die tokenizer Aufgabe wird Ihre Konfiguration ändern auf die Umwelt abhängig davon, welcher der Einsatz los ist.

Lesen Sie die Details auf dem obigen Link, um mehr zu erfahren.

1

Web.config wird während des Erstellungsprozesses transformiert, wenn Sie das Bereitstellungspaket von "Erstellen" generieren und dann in "Version" bereitstellen, können Sie es vor der Bereitstellung nicht umwandeln.

Sie können Web Deploy Parameterization verwenden, um die Werte in web.config vor der Bereitstellung zu aktualisieren. Weitere Informationen für Ihre Referenz: Web Deploy Parameterization vs Web.config Transform.

Und Sie können auch Replace Tokens Aufgabe verwenden, um die Werte in der Datei web.config vor der Bereitstellung zu ersetzen.

+0

Kann das Replace Token einen Text finden und ersetzen? – alltej