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 appSettings
oddílech , applicationSettings
a 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é
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro