FileTransform@2 - bestandstransformatie v2-taak
Gebruik deze taak om tokens te vervangen door variabele waarden in XML- of JSON-configuratiebestanden.
Syntaxis
# 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.
Ingangen
folderPath
-
pakket of map
string
. Vereist. Standaardwaarde: $(System.DefaultWorkingDirectory)/**/*.zip
.
Bestandspad naar het pakket of een map.
Variabelen zijn build- en release-. Jokertekens worden ondersteund.
Bijvoorbeeld $(System.DefaultWorkingDirectory)/**/*.zip
. Voor gezipte mappen wordt de inhoud geëxtraheerd naar de TEMP-locatie, transformaties uitgevoerd en worden de resultaten gezipt op de oorspronkelijke artefactlocatie.
enableXmlTransform
-
XML-transformatie
boolean
. Standaardwaarde: true
.
Configuratietransformaties worden uitgevoerd vóór de variabele vervanging.
XML-transformaties worden alleen ondersteund voor het Windows-platform.
xmlTransformationRules
-
XML-transformatieregels
string
. Facultatief. Gebruiken wanneer enableXmlTransform == true
. Standaardwaarde: -transform **\*.Release.config -xml **\*.config
.
Biedt een door nieuwe regels gescheiden lijst met transformatiebestandsregels met behulp van de syntaxis: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Het pad naar het resultaatbestand is optioneel en als dit niet is opgegeven, wordt het bronconfiguratiebestand vervangen door het getransformeerde resultaatbestand.
xmlTransformationRules
-
XML-transformatieregels
string
. Standaardwaarde: -transform **\*.Release.config -xml **\*.config
.
Biedt een door nieuwe regels gescheiden lijst met transformatiebestandsregels met behulp van de syntaxis: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Het pad naar het resultaatbestand is optioneel en als dit niet is opgegeven, wordt het bronconfiguratiebestand vervangen door het getransformeerde resultaatbestand.
jsonTargetFiles
-
JSON-doelbestanden
string
.
Biedt een door nieuwe regels gescheiden lijst met bestanden om de variabele waarden te vervangen. Bestandsnamen moeten worden opgegeven ten opzichte van de hoofdmap.
Als u bijvoorbeeld de waarde van ConnectionString
in het onderstaande voorbeeld wilt vervangen, moet u een variabele definiëren als Data.DefaultConnection.ConnectionString
in de build- of release-pijplijn (of de omgeving van de releasepijplijn).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Variabele vervanging wordt uitgevoerd na configuratietransformaties.
Opmerking: Alleen aangepaste variabelen die zijn gedefinieerd in build-/release-pijplijnen, worden gebruikt in vervanging. Standaard/door het systeem gedefinieerde pijplijnvariabelen worden uitgesloten. Als dezelfde variabelen zijn gedefinieerd in de release-pijplijn en in de fase, vervangen de fasevariabelen de releasepijplijnvariabelen.
xmlTargetFiles
-
XML-doelbestanden
string
.
Biedt een door nieuwe regels gescheiden lijst met bestanden om de variabele waarden te vervangen. Bestandsnamen moeten worden opgegeven ten opzichte van de hoofdmap.
Voor XML worden variabelen die zijn gedefinieerd in de build- of release-pijplijnen vergeleken met de key
- of name
vermeldingen in de appSettings
, applicationSettings
en connectionStrings
secties van een configuratiebestand en parameters.xml
.
Variabele vervanging wordt uitgevoerd na configuratietransformaties.
Opmerking: Alleen aangepaste variabelen die zijn gedefinieerd in build-/release-pijplijnen, worden gebruikt in vervanging. Standaard/door het systeem gedefinieerde pijplijnvariabelen worden uitgesloten. Als dezelfde variabelen zijn gedefinieerd in de release-pijplijn en in de fase, vervangen de fasevariabelen de releasepijplijnvariabelen.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.
Uitvoervariabelen
Geen.
Opmerkingen
Wat is er nieuw in bestandstransformatie versie 2:
- Meer geoptimaliseerde taakvelden waarmee gebruikers alle functies voor transformatie (XML), het vervangen van variabelen (JSON en XML) in één taakexemplaren kunnen inschakelen.
- Taak mislukt wanneer een van de geconfigureerde transformatie/vervanging niet wordt toegepast of wanneer de taak wordt no-op.
Gebruik deze taak om bestandstransformaties en variabelenvervangingen toe te passen op configuratie- en parameterbestanden. Zie Bestandstransformaties en het vervangen van variabelenvoor meer informatie over hoe vertalingen worden verwerkt.
Belangrijk
Deze taak is bedoeld voor webpakketten en vereist een webpakketbestand. Het werkt niet voor zelfstandige JSON-bestanden.
Bestandstransformaties
- Op dit moment worden bestandstransformaties alleen ondersteund voor XML-bestanden.
- Als u een XML-transformatie wilt toepassen op configuratiebestanden (*.config) moet u een door nieuwe regels gescheiden lijst met transformatiebestandsregels opgeven met behulp van de syntaxis:
-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
- Bestandstransformaties zijn handig in veel scenario's, met name wanneer u implementeert in een App Service en configuraties voor verschillende omgevingen (zoals Dev, Test of Prod) wilt toevoegen, verwijderen of wijzigen door de standaard-Web.config transformatiesyntaxiste volgen.
- U kunt deze functionaliteit ook gebruiken om andere bestanden te transformeren, waaronder configuratiebestanden voor console- of Windows-servicetoepassingen (bijvoorbeeld
FabrikamService.exe.config
). - Configuratiebestandtransformaties worden uitgevoerd voordat variabelen worden vervangen.
Variabele vervanging
- Op dit moment worden alleen XML- en JSON-bestandsindelingen ondersteund voor het vervangen van variabelen.
- Tokens die zijn gedefinieerd in de doelconfiguratiebestanden worden bijgewerkt en vervolgens vervangen door variabele waarden.
- Variabelen worden uitgevoerd na configuratiebestandstransformaties.
- Variabelevervanging wordt alleen toegepast op de vooraf gedefinieerde JSON-sleutels in de objecthiërarchie. Er worden geen nieuwe sleutels gemaakt.
Notitie
Alleen aangepaste variabelen die zijn gedefinieerd in build- en release-pijplijnen, worden gebruikt ter vervanging. Standaard- en systeempijplijnvariabelen worden uitgesloten.
Hier volgt een lijst met momenteel uitgesloten voorvoegsels:
agent.
azure_http_user_agent
build.
common.
release.
system.
tf_
Als dezelfde variabelen zijn gedefinieerd in zowel de release-pijplijn als in een fase, vervangen de gefaseerde variabelen de door de pijplijn gedefinieerde variabelen.
Zie ook: Bestandstransformaties en verwijzing naar het vervangen van variabelen.
Voorbeelden
Als u XML-transformatie wilt uitvoeren op alle configuratiebestanden met de naam patroon .Production.config
, moet de transformatieregel worden opgegeven als:
-transform **\*.Production.config -xml **\*.config
Als u een configuratiebestand hebt met de naam van de fase in uw pijplijn, kunt u het volgende gebruiken:
-transform **\*.$(Release.EnvironmentName).config -xml **\*.config
Als u JSON-variabelen wilt vervangen die genest of hiërarchisch zijn, geeft u deze op met behulp van JSONPath-expressies.
Als u bijvoorbeeld de waarde van ConnectionString- in het onderstaande voorbeeld wilt vervangen, moet u een variabele definiëren als Data.DefaultConnection.ConnectionString
in de build- of release-pijplijn (of in een fase binnen de release-pijplijn).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Eisen
Eis | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
eisen | Geen |
mogelijkheden | Deze taak voldoet niet aan de vereisten voor volgende taken in de taak. |
opdrachtbeperkingen | Enig |
variabelen instellen | Enig |
Agentversie | Alle ondersteunde agentversies. |
Taakcategorie | Nut |