FileTransform@2 – úloha transformace souboru v2

Tato úloha slouží 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.
    #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. Povinná hodnota. Výchozí hodnota: $(System.DefaultWorkingDirectory)/**/*.zip.

Cesta k souboru k balíčku nebo složce

Proměnné jsou Build a Release. Jsou podporovány zástupné é ly.

Například, $(System.DefaultWorkingDirectory)/**/*.zip. U komprimovaný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í artefaktů.


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

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


jsonTargetFiles - Cílové soubory JSON
string.

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

Pokud chcete například nahradit hodnotu ConnectionString v následující ukázce, 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é se spouští po transformacích konfigurace.

Poznámka: K nahrazení se používají pouze vlastní proměnné, které jsou definované v kanálech sestavení nebo verze. Výchozí nebo systém definované proměnné kanálu jsou vyloučeny. Pokud jsou stejné proměnné definované 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 mají zadávat vzhledem ke kořenové složce.

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

Nahrazení proměnné se spouští po transformacích konfigurace.

Poznámka: K nahrazení se používají pouze vlastní proměnné definované v kanálech sestavení/verze. Výchozí nebo systém definované proměnné kanálu jsou vyloučeny. Pokud jsou stejné proměnné definované 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 najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Co je nového v transformaci souborů verze 2:

  • Optimalizovaná pole úkolů, která uživatelům umožňují povolit všechny funkce transformace (XML), nahrazení proměnných (JSON a XML) v jedné instanci úlohy.
  • Úloha selže, pokud se nepoužije žádná z nakonfigurovaných transformací nebo nahrazení nebo když je úkol bez operace.

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

Důležité

Tato úloha je určená pro webové balíčky a vyžaduje soubor webového balíčku. Nefunguje u samostatných souborů JSON.

Transformace souborů

  • V současné době jsou transformace souborů podporovány pouze pro soubory XML.
  • Pokud chcete použít transformaci XML na konfigurační soubory (*.config), musíte zadat nový seznam pravidel transformačních souborů oddělených 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 když nasazujete do služby App Service a chcete přidávat, odebírat nebo upravovat konfigurace pro různá prostředí (například Vývoj, Testování nebo Prod) pomocí standardní syntaxe transformaceWeb.config.
  • Tuto funkci můžete použít také k transformaci dalších souborů, včetně konfiguračních souborů aplikace konzoly nebo služby Windows (například FabrikamService.exe.config).
  • Transformace konfiguračních souborů se spouštějí před nahrazením proměnných.

Nahrazení proměnných

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

Poznámka

Při nahrazení se používají pouze vlastní proměnné definované v kanálech sestavení a verze. Výchozí a systémové proměnné kanálu jsou vyloučené.

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, proměnné definované v dílčí fázi nahrazují proměnné definované kanálem.

Viz také: Odkazy na transformace souborů a nahrazování proměnných.

Příklady

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

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

Pokud máte konfigurační soubor s názvem 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. Chcete-li například nahradit hodnotu ConnectionString v následující ukázce, musíte definovat proměnnou jako Data.DefaultConnection.ConnectionString v kanálu sestavení nebo verze (nebo ve fázi v rámci kanálu verze).

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

Požadavky

Požadavek Popis
Typy kanálů YAML, classic build, verze Classic
Spustí se Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta Všechny podporované verze agenta.
Kategorie úloh Nástroj

Viz také