Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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_agentbuild.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 |