FileTransform@2 — zadanie przekształcania plików w wersji 2
To zadanie służy do zastępowania tokenów wartościami zmiennych w plikach konfiguracji XML lub JSON.
Składnia
# 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.
#enableXmlTransform: true # boolean. XML transformation. Default: true.
#xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config' # string. Optional. Use when enableXmlTransform == true. XML Transformation rules. Default: -transform **\*.Release.config -xml **\*.config.
# Variable Substitution
#jsonTargetFiles: # string. JSON target files.
#xmlTargetFiles: # string. XML target files.
# 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.
Wejścia
folderPath
-
pakietu lub folderu
string
. Wymagane. Wartość domyślna: $(System.DefaultWorkingDirectory)/**/*.zip
.
Ścieżka pliku do pakietu lub folderu.
Zmienne to build i Release. Obsługiwane są symbole wieloznaczne.
Na przykład $(System.DefaultWorkingDirectory)/**/*.zip
. W przypadku folderów spakowanych zawartość jest wyodrębniona do lokalizacji TEMP, wykonanych przekształceń i wyników spakowanych w oryginalnej lokalizacji artefaktu.
enableXmlTransform
-
przekształcenia XML
boolean
. Wartość domyślna: true
.
Przekształcenia konfiguracji zostaną uruchomione przed zastąpieniem zmiennych.
Przekształcenia XML są obsługiwane tylko dla platformy Windows.
xmlTransformationRules
-
reguły przekształcania XML
string
. Fakultatywny. Użyj polecenia , gdy enableXmlTransform == true
. Wartość domyślna: -transform **\*.Release.config -xml **\*.config
.
Udostępnia nową, rozdzielaną wierszem listę reguł plików przekształcania przy użyciu składni: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Ścieżka pliku wynikowego jest opcjonalna, a jeśli nie zostanie określona, plik konfiguracji źródłowej zostanie zastąpiony przekształconym plikiem wyników.
xmlTransformationRules
-
reguły przekształcania XML
string
. Wartość domyślna: -transform **\*.Release.config -xml **\*.config
.
Udostępnia nową, rozdzielaną wierszem listę reguł plików przekształcania przy użyciu składni: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Ścieżka pliku wynikowego jest opcjonalna, a jeśli nie zostanie określona, plik konfiguracji źródłowej zostanie zastąpiony przekształconym plikiem wyników.
jsonTargetFiles
-
plików docelowych JSON
string
.
Udostępnia listę plików rozdzielanych nową linią, aby zastąpić wartości zmiennych. Nazwy plików należy podać względem folderu głównego.
Aby na przykład zastąpić wartość ConnectionString
w poniższym przykładzie, należy zdefiniować zmienną jako Data.DefaultConnection.ConnectionString
w potoku kompilacji lub wydania (lub w środowisku potoku wydania).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Podstawianie zmiennych jest uruchamiane po przekształceniach konfiguracji.
Uwaga: w podstawieniu są używane tylko zmienne niestandardowe zdefiniowane w potokach kompilacji/wydania. Zmienne potoku zdefiniowane domyślnie/systemowo są wykluczone. Jeśli te same zmienne są zdefiniowane w potoku wydania i na etapie, zmienne etapu zastąpią zmienne potoku wydania.
xmlTargetFiles
-
plików docelowych XML
string
.
Udostępnia listę plików rozdzielanych nową linią, aby zastąpić wartości zmiennych. Nazwy plików należy podać względem folderu głównego.
W przypadku kodu XML zmienne zdefiniowane w potokach kompilacji lub wydania będą dopasowywane do wpisów key
lub name
w appSettings
, applicationSettings
i connectionStrings
sekcji dowolnego pliku konfiguracji i parameters.xml
.
Podstawianie zmiennych jest uruchamiane po przekształceniach konfiguracji.
Uwaga: w podstawieniu są używane tylko zmienne niestandardowe zdefiniowane w potokach kompilacji/wydania. Zmienne potoku zdefiniowane domyślnie/systemowo są wykluczone. Jeśli te same zmienne są zdefiniowane w potoku wydania i na etapie, zmienne etapu zastąpią zmienne potoku wydania.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
Co nowego w transformacji plików w wersji 2:
- Bardziej zoptymalizowane pola zadań, które umożliwiają użytkownikom włączanie dowolnych/wszystkich funkcji przekształcania (XML), podstawienia zmiennych (JSON i XML) w jednym wystąpieniu zadania.
- Zadanie kończy się niepowodzeniem, gdy którykolwiek ze skonfigurowanych przekształceń/podstawienia nie jest stosowany lub gdy zadanie jest no-op.
To zadanie służy do stosowania przekształceń plików i podstawień zmiennych w plikach konfiguracji i parametrów. Aby uzyskać szczegółowe informacje o sposobie przetwarzania tłumaczeń, zobacz Przekształcenia plików i dokumentacja podstawień zmiennych.
Ważny
To zadanie jest przeznaczone dla pakietów internetowych i wymaga pliku pakietu internetowego. Nie działa on w autonomicznych plikach JSON.
Przekształcenia plików
- Obecnie przekształcenia plików są obsługiwane tylko dla plików XML.
- Aby zastosować transformację XML do plików konfiguracji (*.config) należy określić listę reguł pliku przekształcania rozdzielaną nową linią przy użyciu składni:
-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
- Przekształcenia plików są przydatne w wielu scenariuszach, szczególnie w przypadku wdrażania w usłudze App Service i chcesz dodać, usunąć lub zmodyfikować konfiguracje dla różnych środowisk (takich jak tworzenie, testowanie lub prod), postępując zgodnie ze standardową składnią przekształcania Web.config.
- Za pomocą tej funkcji można również przekształcić inne pliki, w tym pliki konfiguracji konsoli lub aplikacji usługi systemu Windows (na przykład
FabrikamService.exe.config
). - Przekształcenia plików konfiguracji są uruchamiane przed podstawieniami zmiennych.
Podstawianie zmiennych
- Obecnie tylko formaty plików XML i JSON są obsługiwane w przypadku podstawienia zmiennych.
- Tokeny zdefiniowane w plikach konfiguracji docelowej są aktualizowane, a następnie zastępowane wartościami zmiennych.
- Podstawianie zmiennych są uruchamiane po przekształceniach pliku konfiguracji.
- Podstawianie zmiennych jest stosowane tylko dla kluczy JSON wstępnie zdefiniowanych w hierarchii obiektów. Nie tworzy nowych kluczy.
Nuta
W podstawieniu są używane tylko zmienne niestandardowe zdefiniowane w potokach kompilacji i wydania. Zmienne domyślne i systemowe potoku są wykluczone.
Oto lista obecnie wykluczonych prefiksów:
agent.
azure_http_user_agent
build.
common.
release.
system.
tf_
Jeśli te same zmienne są definiowane zarówno w potoku wydania, jak i na etapie, zmienne zdefiniowane przez etap zastępują zmienne zdefiniowane przez potok.
Zobacz również: Przekształcenia plików i odwołanie do podstawienia zmiennych.
Przykłady
Jeśli potrzebujesz przekształcenia XML do uruchomienia na wszystkich plikach konfiguracji o nazwie z wzorcem .Production.config
, reguła przekształcania powinna być określona jako:
-transform **\*.Production.config -xml **\*.config
Jeśli masz plik konfiguracji o nazwie na podstawie nazwy etapu w potoku, możesz użyć:
-transform **\*.$(Release.EnvironmentName).config -xml **\*.config
Aby zastąpić zmienne JSON, które są zagnieżdżone lub hierarchiczne, określ je przy użyciu wyrażeń JSONPath.
Aby na przykład zastąpić wartość ConnectionString w poniższym przykładzie, należy zdefiniować zmienną jako Data.DefaultConnection.ConnectionString
w potoku kompilacji lub wydania (lub na etapie w potoku wydania).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Żaden |
możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | Wszystkie obsługiwane wersje agentów. |
Kategoria zadań | Użyteczność |