2016-05-09 7 views
0

Ich versuche, einen API-Schlüssel als globale Variable einzurichten, auf die in allen TFS2015-Builds zugegriffen werden kann. Da TFS2015 dieses Feature zu fehlen scheint, versuche ich eine Systemumgebungsvariable auf dem Build-Server zu verwenden, die dann in den Build-Definitionen referenziert wird.Verwenden von Umgebungsvariablen in einem TFS2015-Build

Laut Microsoft's documentation sollte dies möglich sein. Also habe ich eine Systemvariable (nennen Sie es APIKey) auf dem Build-Server eingerichtet und in den Argumenten eines Build-Schritts mit der Standardsyntax referenziert (d. H. "ApiKey = $ (APIKey)"). Anstatt jedoch die Variable durch den API-Schlüssel in der Systemvariable zu ersetzen, versucht sie, $ (APIKey) als Wert zu verwenden und das Fehlschlagen des Builds zu verursachen.

Es kam mir auch in den Sinn, dass diese benutzerdefinierte Umgebungsvariable stattdessen irgendwo im Build-Agent-Ordner selbst festgelegt würde, aber nach einigem Stöbern weiß ich nicht, wo oder wie ich das machen würde.

Ist eines dieser Dinge tatsächlich machbar?

+0

Haben neu starten Sie den Build Agent Maschine nach Hinzufügen der Systemvariablen? –

+0

Ich habe nicht, werde versuchen – Machz

+0

Neustart hat funktioniert – Machz

Antwort

1

Im Folgenden sind meine Schritte, um dies zu erreichen:

  1. Erstellen Sie eine Systemvariable auf Build-Agent Maschine: enter image description here

  2. Starten Sie den Build-Agent-Maschine.

  3. Verwenden Sie die Variable in der Builddefinition. Hier verwende ich cmd Aufgabe als Beispiel und verwenden Sie die $ (testvar) als Argument: enter image description here

Die Aufgabe, den Wert von Systemvariablen gelesen werden, wie folgend: enter image description here

+1

Ich glaube nicht, dass Sie die gesamte Maschine neu starten müssten - nur der Agentendienst. Systemumgebungsvariablen werden beim Start des Prozesses kopiert. Daher sollten beim Neustart des Prozesses die neuen Werte übernommen werden. –

+0

Das hat funktioniert, danke! – Machz