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
, applicationSettings
a 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 |