FileTransform@2 – V2-filtransformeringsaktivitet
Använd den här uppgiften för att ersätta token med variabelvärden i XML- eller JSON-konfigurationsfiler.
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.
Indata
folderPath
- Paket eller mapp
string
. Krävs. Standardvärde: $(System.DefaultWorkingDirectory)/**/*.zip
.
Filsökväg till paketet eller en mapp.
Variabler är Build och Release. Jokertecken stöds.
Till exempel $(System.DefaultWorkingDirectory)/**/*.zip
. För zippade mappar extraheras innehållet till TEMP-platsen, transformeringar körs och resultaten zippads på den ursprungliga artefaktplatsen.
xmlTransformationRules
- XML-transformeringsregler
string
. Standardvärde: -transform **\*.Release.config -xml **\*.config
.
Innehåller en ny radavgränsad lista över transformeringsfilregler med hjälp av syntaxen: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Resultatfilens sökväg är valfri och om den inte anges ersätts källkonfigurationsfilen med den transformerade resultatfilen.
jsonTargetFiles
- JSON-målfiler
string
.
Innehåller en ny radavgränsad lista med filer som ersätter variabelvärdena. Filnamn ska anges i förhållande till rotmappen.
Om du till exempel vill ersätta värdet ConnectionString
för i exemplet nedan måste du definiera en variabel som Data.DefaultConnection.ConnectionString
i bygg- eller versionspipelinen (eller versionspipelinens miljö).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Variabelersättning körs efter konfigurationstransformering.
Obs! Endast anpassade variabler som definieras i bygg-/versionspipelines används i ersättning. Standard-/systemdefinierade pipelinevariabler undantas. Om samma variabler definieras i versionspipelinen och i fasen ersätter fasvariablerna variablerna versionspipelinen.
xmlTargetFiles
- XML-målfiler
string
.
Innehåller en ny radavgränsad lista med filer som ersätter variabelvärdena. Filnamn ska anges i förhållande till rotmappen.
För XML matchas variabler som definierats i bygg- eller versionspipelines mot key
posterna eller name
i avsnitten appSettings
, applicationSettings
och connectionStrings
i alla konfigurationsfiler och parameters.xml
.
Variabelersättning körs efter konfigurationstransformering.
Obs! Endast anpassade variabler som definierats i bygg-/versionspipelines används i ersättning. Standard-/systemdefinierade pipelinevariabler undantas. Om samma variabler definieras i versionspipelinen och i fasen ersätter fasvariablerna variablerna versionspipelinen.
Alternativ för aktivitetskontroll
Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Inga.
Kommentarer
Nyheter i Filtransformering version 2:
- Mer optimerade aktivitetsfält som gör det möjligt för användare att aktivera alla transformeringsfunktioner (XML), variabelersättning (JSON och XML) i en enda uppgiftsinstans.
- Aktiviteten misslyckas när någon av de konfigurerade transformeringarna/ersättningen INTE tillämpas eller när aktiviteten inte fungerar.
Använd den här uppgiften för att tillämpa filtransformeringar och variabelersättningar på konfigurations- och parameterfiler. Mer information om hur översättningar bearbetas finns i Referens för filtransformering och variabel ersättning.
Viktigt
Den här uppgiften är avsedd för webbpaket och kräver en webbpaketfil. Det fungerar inte på fristående JSON-filer.
Filtransformeringar
- För närvarande stöds filtransformeringar endast för XML-filer.
- Om du vill tillämpa en XML-transformering på konfigurationsfiler (*.config) måste du ange en ny radavgränsad lista över transformeringsfilregler med hjälp av syntaxen:
-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
- Filtransformeringar är användbara i många scenarier, särskilt när du distribuerar till en App Service och vill lägga till, ta bort eller ändra konfigurationer för olika miljöer (till exempel Dev, Test eller Prod) genom att följa standardsyntaxen förWeb.config transformation.
- Du kan också använda den här funktionen för att transformera andra filer, inklusive konfigurationsfiler för konsol- eller Windows-tjänstprogram (till exempel
FabrikamService.exe.config
). - Konfigurationsfiltransformeringar körs före variabelersättningar.
Variabel ersättning
- För närvarande stöds endast XML- och JSON-filformat för variabel ersättning.
- Token som definierats i målkonfigurationsfilerna uppdateras och ersätts sedan med variabelvärden.
- Variabelersättningar körs efter konfigurationsfiltransformering.
- Variabelersättning tillämpas endast för JSON-nycklar som är fördefinierade i objekthierarkin. Det skapar inte nya nycklar.
Anteckning
Endast anpassade variabler som definierats i bygg- och versionspipelines används i ersättning. Standard- och systempipelinevariabler undantas.
Här är en lista över för närvarande undantagna prefix:
agent.
azure_http_user_agent
build.
common.
release.
system.
tf_
Om samma variabler definieras i både versionspipelinen och i ett steg ersätter de fasdefinierade variablerna de pipelinedefinierade variablerna.
Se även : Filtransformering och variabel ersättningsreferens.
Exempel
Om du behöver XML-transformering för att köra alla konfigurationsfiler med namnet med mönster .Production.config
ska transformeringsregeln anges som:
-transform **\*.Production.config -xml **\*.config
Om du har en konfigurationsfil med namnet baserat på fasnamnet i pipelinen kan du använda:
-transform **\*.$(Release.EnvironmentName).config -xml **\*.config
Om du vill ersätta JSON-variabler som är kapslade eller hierarkiska anger du dem med JSONPath-uttryck.
Om du till exempel vill ersätta värdet för ConnectionString i exemplet nedan måste du definiera en variabel som Data.DefaultConnection.ConnectionString
i bygg- eller versionspipelinen (eller i ett steg i versionspipelinen).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version, klassisk version |
Körs på | Agent, DeploymentGroup |
Krav | Ingen |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | Alla agentversioner som stöds. |
Uppgiftskategori | Verktyg |