2016-06-20 11 views
3

In der Vergangenheit habe ich web.config-Transformationen verwendet, wenn Code manuell implementiert wurde, um umgebungsspezifische Einstellungswerte und -attribute festzulegen. Ich gehe von umweltspezifischen manuellen Builds zu einem einzigen TFS 2015 Build über, das über Release Management in mehreren Umgebungen bereitgestellt wird. Umgebungsspezifische Anwendungseinstellungen, die in der Datei web.config konfiguriert wurden, werden in Token umgewandelt. This method fügt Token im Wesentlichen während des Build-Prozesses in Einstellungswerte ein. Bei der Bereitstellung werden die Token durch übereinstimmende Release-Definitionskonfigurationswerte ersetzt.web.config ändert sich über TFS 2015 Release Management

Diese Methode reicht jedoch nicht aus, um Attribute von Nicht-Einstellungen zu setzen. Beispiele für diese Transformationen sind:

<httpCookies requireSSL="true" xdt:Transform="Insert" /> 
<compilation xdt:Transform="RemoveAttributes(debug)" /> 
<httpRuntime xdt:Transform="RemoveAttributes(executionTimeout,maxRequestLength,useFullyQualifiedRedirectUrl,minFreeThreads,minLocalRequestFreeThreads,appRequestQueueLimit,enableVersionHeader)"/> 
<httpRuntime enableVersionHeader="false" maxRequestLength="12288" xdt:Transform="SetAttributes"/> 
<customErrors mode="On" xdt:Transform="SetAttributes"/> 

Was ist der beste Weg, um diese Attribute während der Veröffentlichung zu aktualisieren?

Antwort

6

Sowohl Web Deploy's parameters.xml method als auch Transformationen können mit Release Management verwendet werden. Transformationen würden von Build ausgelöst und der Prozess zum Ersetzen von Token, die durch eine Veröffentlichung erstellt wurden, würde von Release Management ausgelöst werden.

Um Transformationen während des Build auslösen, können Sie dies eine von zwei Möglichkeiten:

  1. folgende MSBuild Parameter Fügen Sie die Transformation zu zwingen, während des Build

    /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false

  2. passieren
  3. Erstellen Sie ein Veröffentlichungsprofil mit der Option MSDeploy Package, und lösen Sie dann das Paketieren in Build mit den folgenden MSBuild-Parametern aus:

    /p:DeployOnBuild=true /p:PublishProfile=[nameOfProfile]

wird entweder die oben genannten Methoden führen normale Web.config XDT laufen. Wenn Sie andere XML-Dateien zur Umwandlung benötigen, müssen Sie zuerst SlowCheetah installieren. Ersetzen

Token und Parameter

Nun, da Sie einen Build Artefakt haben mit XDT Lauf, können Sie token replacement verwenden und die WinRM tasks von Release Management. Dazu wird das Web Deploy-Paket vom Build ausgeführt und der Befehl SetParameters vor der Bereitstellung ausgeführt. Der Trick besteht darin, die Datei SetParameters.xml zu übernehmen und zuerst eine Token-Ersetzung auszuführen, indem Sie zunächst die Umgebungsvariablen der Version auslagern.

2

Benutzer gab Sumo eine richtige Antwort, aber ich möchte einige Kommentare notieren im Zusammenhang mit was statt wie.

IMHO gibt es verschiedene Kategorien von Einstellungen zu prüfen, lassen Sie uns beispielhaft. Die Zeichenfolge für die Datenbankverbindung ändert sich in jeder Umgebung, während SSL für alle Test- und Produktionsumgebungen aktiviert werden muss. In dieser Perspektive sollten Sie die Einstellungen so früh wie möglich anwenden, traditionell zur Build-Zeit und als Debug/Release Builds bezeichnet werden; und Last-Minute-Einstellungen, abhängig von der Umgebung, bis zu Laufzeiteinstellungen, wie Feature toggelt.

Aus meiner Sicht können Sie ein einzelnes Werkzeug oder mehrere Werkzeuge verwenden, aber es ist wichtig, dass Sie Ihre Einstellungen entsprechend kategorisieren.

Verwandte Themen