Delen via


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, applicationSettingsen 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

Zie ook