FileTransform@2 – V2-uppgift för filtransformering
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.
#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.
Ingångar
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 zippad på den ursprungliga artefaktplatsen.
enableXmlTransform
-
XML-transformering
boolean
. Standardvärde: true
.
Konfigurationstransformeringar körs före variabelersättningen.
XML-transformeringar stöds endast för Windows-plattformen.
xmlTransformationRules
-
XML-transformeringsregler
string
. Valfri. Använd när enableXmlTransform == true
. 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.
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 för ConnectionString
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 scenvariablerna variablerna versionspipeline.
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 posterna key
eller name
i appSettings
, applicationSettings
och connectionStrings
avsnitten i en konfigurationsfil 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 scenvariablerna variablerna versionspipeline.
Alternativ för aktivitetskontroll
Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Ingen.
Anmärkningar
Nyheter i filtransformeringsversion 2:
- Mer optimerade aktivitetsfält som gör det möjligt för användare att aktivera alla transformeringsfunktioner (XML), JSON- och XML-funktioner (variable substitution) i en enda aktivitetsinstans.
- Aktiviteten misslyckas när någon av de konfigurerade transformeringarna/ersättningen INTE tillämpas eller när uppgiften är no-op.
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 Filtransformeringar och referens för variabel ersättning.
Viktig
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 med 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ör Web.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 definieras i målkonfigurationsfilerna uppdateras och ersätts sedan med variabelvärden.
- Variabelersättningar körs efter konfigurationsfiltransformeringar.
- Variabelersättning används endast för JSON-nycklar som är fördefinierade i objekthierarkin. Den skapar inte nya nycklar.
Not
Endast anpassade variabler som definierats i bygg- och versionspipelines används i ersättning. Standardvariabler 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 en fas ersätter de stegdefinierade variablerna de pipelinedefinierade variablerna.
Se även: Filtransformering och referens för variabelersättning.
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 en fas 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 |
kräver | Ingen |
funktioner | Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Någon |
variabler som kan | Någon |
Agentversion | Alla agentversioner som stöds. |
Aktivitetskategori | Nytta |