2016-05-31 18 views
2

Wir verwenden Entity Framework 6 mit MS SQL-Server für unsere Datenbankintegrationstests (MSTests).Build-Definition für Visual Studio-Teamdienste: Datenbankverbindungszeichenfolge festlegen

Ich bin auf der Suche nach einer integrierten Möglichkeit zum Festlegen der Datenbankverbindungszeichenfolge in meiner App app.config in der Build-Definition von Visual Studio Team Services (VSTS).

Könnte dies mit Build-Variablen oder einem anderen ordentlich integrierten Weg getan werden?

andere Optionen in Betracht gezogen (andernfalls einen besseren Weg zu finden):

  1. * .runsettings mit Verbindungsdetails Schaffung neuen Build-
  2. Konfiguration mit der app.config-Transformation (SlowCheetah)
zu erhalten
+0

Über Option 2. Ich glaube, dass SlowCheetah nicht erforderlich ist, um eine Umwandlung auszuführen. Sie können csproj manuell bearbeiten und mit der TransformXml-Task arbeiten. Hier habe ich ein einfaches Codebeispiel gefunden [TransformXml Web.config während der Veröffentlichung] (http: // stackoverflow.com/questions/10316108/transformxml-web-config-while-publishing) – AndrewSilver

Antwort

2

Sie können Replace Tokens Task verwenden. Dadurch können Sie die Zeichenfolge in der Konfigurationsdatei durch die Variablen in der Builddefinition ersetzen.

1

Ein Ansatz ist tokenization

Um tokenization zu implementieren zu verwenden, können Sie eine dieser beiden Implementierungen

  1. https://github.com/qetza/vsts-replacetokens-task#readme
  2. https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks

verwenden Wenn Sie sich entscheiden, gehen mit der ersten Implementierung sind hier die Schritte

  1. Navigieren Sie zu https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens und installieren "Ersetzen Tokens" in das Konto, das Sie in Ihren Build def haben.

  2. Aktualisieren Sie die Anwendung web.config so dass

    Connection = "# {MyToken} # "

  3. Fügen Sie der Builddefinition eine neue Variable mit dem Namen des Tokens hinzu. Stellen Sie sicher, dass Wert

    PROTECTED

Was passiert, ist, dass der Build-Schritt all .config-Token mit dem Variablenwert für die Build-Definition angegeben ersetzen wird. Ziemlich ordentlich.

Denken Sie daran, dass die Integrationstests wahrscheinlich dann für das Quellcode-Repository in dem Zustand fehlschlagen würden, in dem diese Aufgabe nicht vorhanden ist. Dies kann für einige Leute sehr lästig sein, ist aber leicht zu umgehen, wenn Sie GIT verwenden und einen Token verwenden, um das Token lokal für Integrationstests zu überschreiben. Wenn Sie eine SQL-Datenbank (azurblau) mit Firewall-Einstellungen haben, können die Integrationstests fehlschlagen, da die virtuellen Maschinen des Erstellungsagenten nicht autorisiert wurden und Sie möglicherweise eine neue Regel hinzufügen müssen Ihr Erstellungsagent ist autorisiert