FileTransform@2: Dateitransformation v2-Aufgabe
Verwenden Sie diese Aufgabe, um Token in XML- oder JSON-Konfigurationsdateien durch Variablenwerte zu ersetzen.
Syntax
# File transform v2
# Replace tokens with variable values in XML or JSON configuration files.
- task: FileTransform@2
inputs:
folderPath: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config' # string. XML Transformation rules. Default: -transform **\*.Release.config -xml **\*.config.
# Variable Substitution
#jsonTargetFiles: # string. JSON target files.
#xmlTargetFiles: # string. XML target files.
Eingaben
folderPath
- Paket oder Ordner
string
. Erforderlich. Standardwert. $(System.DefaultWorkingDirectory)/**/*.zip
.
Dateipfad zum Paket oder Ordner.
Variablen sind Build und Release. Platzhalter werden unterstützt.
Beispiel: $(System.DefaultWorkingDirectory)/**/*.zip
. Bei gezippten Ordnern werden die Inhalte an den TEMP-Speicherort extrahiert, Transformationen ausgeführt und die Ergebnisse in den ursprünglichen Artefaktspeicherort gezippt.
xmlTransformationRules
- XML-Transformationsregeln
string
. Standardwert. -transform **\*.Release.config -xml **\*.config
.
Stellt eine durch Zeilen getrennte Liste von Transformationsdateiregeln mithilfe der Syntax bereit: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Der Pfad der Ergebnisdatei ist optional, und wenn nicht angegeben, wird die Quellkonfigurationsdatei durch die transformierte Ergebnisdatei ersetzt.
jsonTargetFiles
- JSON-Zieldateien
string
.
Stellt eine durch Zeilen getrennte Liste von Dateien bereit, um die Variablenwerte zu ersetzen. Dateinamen müssen relativ zum Stammordner angegeben werden.
Um beispielsweise den Wert von ConnectionString
im folgenden Beispiel zu ersetzen, müssen Sie eine Variable wie Data.DefaultConnection.ConnectionString
in der Build- oder Releasepipeline (oder der Umgebung der Releasepipeline) definieren.
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Variablenersetzung wird nach Konfigurationstransformationen ausgeführt.
Hinweis: Nur benutzerdefinierte Variablen, die in Build-/Releasepipelines definiert sind, werden als Ersetzung verwendet. Standard-/systemdefinierte Pipelinevariablen werden ausgeschlossen. Wenn dieselben Variablen in der Releasepipeline und in der Phase definiert sind, ersetzen die Phasenvariablen die Releasepipelinevariablen.
xmlTargetFiles
- XML-Zieldateien
string
.
Stellt eine durch Zeilen getrennte Liste von Dateien bereit, um die Variablenwerte zu ersetzen. Dateinamen müssen relativ zum Stammordner angegeben werden.
Für XML werden variablen, die in den Build- oder Releasepipelines definiert sind, mit den key
Einträgen oder name
in den appSettings
Abschnitten , applicationSettings
und connectionStrings
einer beliebigen Konfigurationsdatei und parameters.xml
abgeglichen.
Variablenersetzung wird nach Konfigurationstransformationen ausgeführt.
Hinweis: Bei der Ersetzung werden nur benutzerdefinierte Variablen verwendet, die in Build-/Releasepipelines definiert sind. Standard-/systemdefinierte Pipelinevariablen werden ausgeschlossen. Wenn dieselben Variablen in der Releasepipeline und in der Phase definiert sind, ersetzen die Phasenvariablen die Releasepipelinevariablen.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.
Ausgabevariablen
Keine.
Hinweise
Neuerungen in Dateitransformation Version 2:
- Optimierte Aufgabenfelder, mit denen Benutzer alle Transformationsfeatures (XML), Variablenersetzung (JSON und XML) in einer einzelnen Aufgabeninstanz aktivieren können.
- Der Task schlägt fehl, wenn eine der konfigurierten Transformationen/Ersetzungen NICHT angewendet wird oder wenn die Aufgabe nicht verwendet wird.
Verwenden Sie diese Aufgabe, um Dateitransformationen und Variablenersetzungen auf Konfigurations- und Parameterdateien anzuwenden. Ausführliche Informationen zur Verarbeitung von Übersetzungen finden Sie unter Dateitransformationen und Variablenersetzungsreferenz.
Wichtig
Diese Aufgabe ist für Webpakete vorgesehen und erfordert eine Webpaketdatei. Es funktioniert nicht mit eigenständigen JSON-Dateien.
Dateitransformationen
- Derzeit werden Dateitransformationen nur für XML-Dateien unterstützt.
- Zum Anwenden einer XML-Transformation auf Konfigurationsdateien (*.config) müssen Sie eine durch Zeilen getrennte Liste von Transformationsdateiregeln mithilfe der Syntax angeben:
-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
- Dateitransformationen sind in vielen Szenarien nützlich, insbesondere wenn Sie in einem App-Dienst bereitstellen und Konfigurationen für verschiedene Umgebungen (z. B. Dev, Test oder Prod) hinzufügen, entfernen oder ändern möchten, indem Sie die Standardmäßige Web.config Transformationssyntax verwenden.
- Sie können diese Funktion auch verwenden, um andere Dateien zu transformieren, einschließlich Konfigurationsdateien für Konsolen- oder Windows-Dienstanwendungen (z. B.
FabrikamService.exe.config
). - Konfigurationsdateitransformationen werden vor Variablenersetzungen ausgeführt.
Variablenersetzung
- Derzeit werden nur XML- und JSON-Dateiformate für die Variablenersetzung unterstützt.
- Token, die in den Zielkonfigurationsdateien definiert sind, werden aktualisiert und dann durch Variablenwerte ersetzt.
- Variablenersetzungen werden nach Konfigurationsdateitransformationen ausgeführt.
- Die Variablenersetzung wird nur für die json-Schlüssel angewendet, die in der Objekthierarchie vordefiniert sind. Es werden keine neuen Schlüssel erstellt.
Hinweis
Nur benutzerdefinierte Variablen, die in Build- und Releasepipelines definiert sind, werden als Ersetzung verwendet. Standard- und Systempipelinevariablen sind ausgeschlossen.
Dies ist eine Liste der derzeit ausgeschlossenen Präfixe:
agent.
azure_http_user_agent
build.
common.
release.
system.
tf_
Wenn dieselben Variablen sowohl in der Releasepipeline als auch in einer Phase definiert sind, ersetzen die phasendefinierten Variablen die durch die Pipeline definierten Variablen.
Siehe auch: Dateitransformationen und Variablenersetzungsreferenz.
Beispiele
Wenn die XML-Transformation für alle Konfigurationsdateien mit dem Namen mit dem Muster .Production.config
ausgeführt werden soll, sollte die Transformationsregel wie folgt angegeben werden:
-transform **\*.Production.config -xml **\*.config
Wenn Sie eine Konfigurationsdatei mit dem Namen basierend auf dem Phasennamen in Ihrer Pipeline haben, können Sie Folgendes verwenden:
-transform **\*.$(Release.EnvironmentName).config -xml **\*.config
Um JSON-Variablen zu ersetzen, die geschachtelt oder hierarchisch sind, geben Sie sie mithilfe von JSONPath-Ausdrücken an.
Um beispielsweise den Wert von ConnectionString im folgenden Beispiel zu ersetzen, müssen Sie eine Variable wie Data.DefaultConnection.ConnectionString
in der Build- oder Releasepipeline (oder in einer Phase innerhalb der Releasepipeline) definieren.
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Klassischer Build, klassisches Release |
Wird ausgeführt auf | Agent, DeploymentGroup |
Forderungen | Keine |
Capabilities | Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag. |
Befehlseinschränkungen | Any |
Setzbare Variablen | Any |
Agent-Version | Alle unterstützten Agent-Versionen. |
Aufgabenkategorie | Hilfsprogramm |