Udostępnij za pośrednictwem


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 applicationSettingsappSettingssekcjach dowolnego pliku konfiguracji i connectionStringsparameters.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

Zobacz też