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.

Syntax

# 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.

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.

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.

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 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.


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:-t ransform <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, DeploymentGroup
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é