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, applicationSettingsoch 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.configska 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

Se även