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.
    #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, applicationSettingsi 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ść

Zobacz też