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.
#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.
Dane wejściowe
folderPath
- Pakiet lub folder
string
. Wymagane. Wartość domyślna: $(System.DefaultWorkingDirectory)/**/*.zip
.
Ścieżka pliku do pakietu lub folderu.
Zmienne to kompilacja i wydanie. 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.
xmlTransformationRules
- Reguły przekształcania XML
string
. Wartość domyślna: -transform **\*.Release.config -xml **\*.config
.
Udostępnia nową listę reguł plików przekształcania rozdzielanych wierszami 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
- Pliki docelowe JSON
string
.
Udostępnia nową listę plików rozdzielanych wierszami, 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ą tak jak 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 przez system/domyślne są wykluczone. Jeśli te same zmienne są zdefiniowane w potoku wydania i na etapie, zmienne etapu zastąpią zmienne potoku wydania.
xmlTargetFiles
- Pliki docelowe XML
string
.
Udostępnia nową listę plików rozdzielanych wierszami, 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ą zgodne z key
wpisami lub name
w applicationSettings
appSettings
sekcjach dowolnego pliku konfiguracji i connectionStrings
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 przez system/domyślne 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 ich danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.
Zmienne wyjściowe
Brak.
Uwagi
Co nowego w przekształcaniu plików w wersji 2:
- Bardziej zoptymalizowane pola zadań, które umożliwiają użytkownikom włączanie dowolnych/wszystkich funkcji przekształcania (XML), podstawiania zmiennych (JSON i XML) w pojedynczym wystąpieniu zadania.
- Zadanie kończy się niepowodzeniem, gdy którykolwiek ze skonfigurowanych przekształceń/podstawień nie jest stosowany lub gdy zadanie nie działa.
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 na temat sposobu przetwarzania tłumaczeń, zobacz File transforms and variable substytucja reference (Przekształcenia plików i dokumentacja podstawień zmiennych).
Ważne
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 w przypadku plików XML.
- Aby zastosować transformację XML do plików konfiguracji (*.config), należy określić nową listę reguł pliku przekształcania rozdzielaną wierszem 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ą transformacjiWeb.config.
- Za pomocą tej funkcji można również przekształcać inne pliki, w tym pliki konfiguracji aplikacji konsoli lub systemu Windows (na przykład
FabrikamService.exe.config
). - Przekształcenia plików konfiguracji są uruchamiane przed podstawianie zmiennych.
Podstawianie zmiennych
- Obecnie tylko formaty plików XML i JSON są obsługiwane w przypadku podstawiania 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.
Uwaga
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ą zdefiniowane 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 podstawień zmiennych.
Przykłady
Jeśli potrzebujesz przekształcenia XML do uruchomienia na wszystkich plikach konfiguracji o nazwie ze 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 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ą tak jak 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, kompilacja klasyczna, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Brak |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
Ograniczenia poleceń | Dowolne |
Zmienne w formie tabeli settable | Dowolne |
Wersja agenta | Wszystkie obsługiwane wersje agentów. |
Kategoria zadania | Narzędzie |