FileTransform@2 - Bestandstransformatie v2-taak

Gebruik deze taak om tokens te vervangen door variabele waarden in XML- of JSON-configuratiebestanden.

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.

Invoerwaarden

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 LOCATIE TEMP, worden transformaties uitgevoerd en worden de resultaten gezipt in de oorspronkelijke artefactlocatie.


xmlTransformationRules - XML-transformatieregels
string. Standaardwaarde: -transform **\*.Release.config -xml **\*.config.

Biedt een nieuwe, door 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 nieuwe, door regels gescheiden lijst met bestanden om de variabelewaarden 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 zoals Data.DefaultConnection.ConnectionString in de build- of release-pijplijn (of de omgeving van de release-pijplijn).

{
  "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 ter vervanging. Standaard/door het systeem gedefinieerde pijplijnvariabelen zijn uitgesloten. Als dezelfde variabelen zijn gedefinieerd in de releasepijplijn en in de fase, vervangen de fasevariabelen de releasepijplijnvariabelen.


xmlTargetFiles - XML-doelbestanden
string.

Biedt een nieuwe, door regels gescheiden lijst met bestanden om de variabelewaarden 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 vermeldingen of name in de appSettingssecties , applicationSettingsen connectionStrings 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 ter vervanging. Standaard/door het systeem gedefinieerde pijplijnvariabelen zijn uitgesloten. Als dezelfde variabelen zijn gedefinieerd in de releasepijplijn en in de fase, vervangen de fasevariabelen de releasepijplijnvariabelen.


Opties voor taakbeheer

Alle taken hebben naast de taakinvoer besturingsopties. Zie Besturingsopties en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Wat is er nieuw in bestandstransformatie versie 2:

  • Meer geoptimaliseerde taakvelden waarmee gebruikers alle functies voor transformatie (XML) en variabele vervanging (JSON en XML) in één taakexemplaren kunnen inschakelen.
  • De taak mislukt wanneer een van de geconfigureerde transformatie/vervangingen NIET wordt toegepast of wanneer de taak no-op is.

Gebruik deze taak om bestandstransformaties en variabelevervangingen toe te passen op configuratie- en parametersbestanden. Zie Bestandstransformaties en vervangingsverwijzing voor variabelen voor meer informatie over hoe vertalingen worden verwerkt.

Belangrijk

Deze taak is bedoeld voor webpakketten en vereist een webpakketbestand. Het werkt niet in 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 nieuwe, door 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 Transformatiesyntaxis te volgen.
  • U kunt deze functionaliteit ook gebruiken om andere bestanden te transformeren, waaronder configuratiebestanden voor console- of Windows-servicetoepassingen (bijvoorbeeld FabrikamService.exe.config).
  • Configuratiebestandstransformaties 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.
  • Variabelevervangingen worden uitgevoerd na configuratiebestandstransformaties.
  • Variabele vervangen wordt alleen toegepast op de JSON-sleutels die vooraf zijn gedefinieerd 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 zijn 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 fase-gedefinieerde variabelen de door de pijplijn gedefinieerde variabelen.

Zie ook: Bestandstransformaties en verwijzing naar variabelevervanging.

Voorbeelden

Als xml-transformatie moet worden uitgevoerd op alle configuratiebestanden met de naam met patroon .Production.config, moet de transformatieregel worden opgegeven als:

-transform **\*.Production.config -xml **\*.config

Als u een configuratiebestand met de naam hebt op basis van de naam van de fase in uw pijplijn, kunt u het volgende gebruiken:

-transform **\*.$(Release.EnvironmentName).config -xml **\*.config

Als u geneste of hiërarchische JSON-variabelen wilt vervangen, 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 zoals 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"
    }
  }
}

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie Alle ondersteunde agentversies.
Taakcategorie Hulpprogramma

Zie ook