Sdílet prostřednictvím


FileTransform@2 – úloha Transformace souboru v2

Tuto úlohu použijte k nahrazení tokenů hodnotami proměnných v konfiguračních souborech XML nebo JSON.

Syntaxe

# 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.
    #errorOnInvalidSubstitution: false # boolean. Error on empty files and invalid substitution. Default: false.
  # 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.

Vstupy

folderPath - balíček nebo složka
string. Požadovaný. Výchozí hodnota: $(System.DefaultWorkingDirectory)/**/*.zip.

Cesta k balíčku nebo složce.

Proměnné jsou build a release. Podporují se zástupné kóty.

Například $(System.DefaultWorkingDirectory)/**/*.zip. U zazipovaných složek se obsah extrahuje do umístění TEMP, provede se transformace a výsledky se zazipují do původního umístění artefaktu.


transformace XML enableXmlTransform -
boolean. Výchozí hodnota: true.

Transformace konfigurace se spustí před nahrazením proměnných.

Důležitý

Transformace XML jsou podporovány pouze pro platformu Windows.


xmlTransformationRules - pravidla transformace XML
string. Volitelný. Používá se při enableXmlTransform == true. Výchozí hodnota: -transform **\*.Release.config -xml **\*.config.

Poskytuje seznam pravidel transformačních souborů oddělených novým řádekem pomocí syntaxe: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Cesta k výslednému souboru je volitelná a pokud není zadána, zdrojový konfigurační soubor se nahradí transformovaným výsledným souborem.


xmlTransformationRules - pravidla transformace XML
string. Výchozí hodnota: -transform **\*.Release.config -xml **\*.config.

Poskytuje seznam pravidel transformačních souborů oddělených novým řádekem pomocí syntaxe: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Cesta k výslednému souboru je volitelná a pokud není zadána, zdrojový konfigurační soubor se nahradí transformovaným výsledným souborem.


jsonTargetFiles - cílových souborů JSON
string.

Poskytuje seznam souborů oddělených novým řádekem, který nahradí hodnoty proměnných. Názvy souborů se zadají vzhledem ke kořenové složce.

Chcete-li například nahradit hodnotu v ConnectionString níže uvedeném ukázkovém souboru, musíte definovat proměnnou jako Data.DefaultConnection.ConnectionString v kanálu sestavení nebo verze (nebo v prostředí kanálu verze).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

Nahrazení proměnných se spustí po transformaci konfigurace.

Poznámka: Nahrazování se používají pouze vlastní proměnné definované v kanálech buildu nebo verze. Výchozí nebo systémové definované proměnné kanálu jsou vyloučeny. Pokud jsou stejné proměnné definovány v kanálu verze a ve fázi, proměnné fáze nahradí proměnné kanálu verze.


xmlTargetFiles - cílové soubory XML
string.

Poskytuje seznam souborů oddělených novým řádekem, který nahradí hodnoty proměnných. Názvy souborů se zadají vzhledem ke kořenové složce.

V případě XML se proměnné definované v kanálech sestavení nebo verze budou shodovat s položkami key nebo name v oddílech appSettings, applicationSettingsa connectionStrings libovolného konfiguračního souboru a parameters.xml.

Nahrazení proměnných se spustí po transformaci konfigurace.

Poznámka: V nahrazování se používají pouze vlastní proměnné definované v kanálech buildu nebo verze. Výchozí nebo systémové definované proměnné kanálu jsou vyloučeny. Pokud jsou stejné proměnné definovány v kanálu verze a ve fázi, proměnné fáze nahradí proměnné kanálu verze.


errorOnInvalidSubstitution - Chyba u prázdných souborů a neplatná náhrada.
boolean. Výchozí hodnota: false.

Pokud je tato možnost vybraná, kanál selže, pokud jsou cílové soubory prázdné nebo pokud se nezdaří nahrazení.


Možnosti řízení úkolů

Všechny úkoly mají kromě vstupů úkolů také možnosti řízení. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.

Výstupní proměnné

Žádný.

Poznámky

Novinky v transformaci souborů verze 2:

  • Optimalizovanější pole úkolů, která uživatelům umožňují povolit libovolnou/všechny funkce transformace (XML), nahrazení proměnných (JSON a XML) v jedné instanci úlohy.
  • Úkol selže, pokud není použita žádná z nakonfigurovaných transformací nebo nahrazení nebo když je úkol no-op.

Tuto úlohu použijte k použití transformací souborů a nahrazení proměnných u konfiguračních souborů a souborů parametrů. Podrobnosti o zpracování překladů najdete v tématu Transformace souborů a odkaz na nahrazení proměnných.

Důležitý

Tento úkol je určený pro webové balíčky a vyžaduje soubor webového balíčku. Nefunguje na samostatných souborech JSON.

Transformace souborů

  • V současné době jsou transformace souborů podporovány pouze pro soubory XML.
  • Chcete-li použít transformaci XML na konfigurační soubory (*.config), je nutné zadat seznam pravidel transformačních souborů oddělených novým řádekem pomocí syntaxe:-transform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • Transformace souborů jsou užitečné v mnoha scénářích, zejména pokud nasazujete do služby App Service a chcete přidat, odebrat nebo upravit konfigurace pro různá prostředí (například Vývoj, Testování nebo Prod) podle standardní syntaxe transformace Web.config.
  • Pomocí této funkce můžete také transformovat jiné soubory, včetně konfiguračních souborů konzoly nebo aplikace služby systému Windows (například FabrikamService.exe.config).
  • Transformace konfiguračního souboru se spouští před nahrazením proměnných.

Nahrazení proměnných

  • V současné době jsou podporovány pouze formáty souborů XML a JSON pro nahrazení proměnných.
  • Tokeny definované v cílových konfiguračních souborech se aktualizují a pak nahradí hodnotami proměnných.
  • Nahrazení proměnných se spouští po transformacích konfiguračního souboru.
  • Nahrazení proměnných se použije pouze pro klíče JSON předdefinované v hierarchii objektů. Nevytvoří nové klíče.

Poznámka

Náhradou se používají pouze vlastní proměnné definované v kanálech buildu a verze. Výchozí a systémové proměnné kanálu jsou vyloučeny.

Tady je seznam aktuálně vyloučených předpon:

  • agent.
  • azure_http_user_agent
  • build.
  • common.
  • release.
  • system.
  • tf_

Pokud jsou stejné proměnné definovány v kanálu verze i ve fázi, nahradí proměnné definované fází proměnné definované kanálem.

Viz také: Transformace souborů a odkaz na nahrazení proměnných.

Příklady

Pokud potřebujete, aby se transformace XML spustila na všech konfiguračních souborech pojmenovaných se vzorem .Production.config, mělo by se pravidlo transformace zadat takto:

-transform **\*.Production.config -xml **\*.config

Pokud máte konfigurační soubor pojmenovaný na základě názvu fáze v kanálu, můžete použít:

-transform **\*.$(Release.EnvironmentName).config -xml **\*.config

Pokud chcete nahradit proměnné JSON, které jsou vnořené nebo hierarchické, zadejte je pomocí výrazů JSONPath. Pokud chcete například nahradit hodnotu ConnectionString v ukázce níže, musíte definovat proměnnou jako Data.DefaultConnection.ConnectionString v kanálu buildu nebo verze (nebo ve fázi v kanálu verze).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení, klasická verze
Běží na Agent, skupina nasazení
požadavky Žádný
možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
omezení příkazů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta Všechny podporované verze agenta.
Kategorie úkolu Užitek

Viz také