Condividi tramite


FileTransform@2 - Attività Trasformazione file v2

Usare questa attività per sostituire i token con valori variabili nei file di configurazione XML o JSON.

Sintassi

# 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.

Ingressi

folderPath - pacchetto o cartella
string. Obbligatorio. Valore predefinito: $(System.DefaultWorkingDirectory)/**/*.zip.

Percorso del file del pacchetto o di una cartella.

Le variabili sono build e Release. Sono supportati caratteri jolly.

Ad esempio, $(System.DefaultWorkingDirectory)/**/*.zip. Per le cartelle compresse, il contenuto viene estratto nel percorso TEMP, le trasformazioni eseguite e i risultati compressi nella posizione originale dell'artefatto.


enableXmlTransform - trasformazione XML
boolean. Valore predefinito: true.

Le trasformazioni di configurazione verranno eseguite prima della sostituzione delle variabili.

Le trasformazioni XML sono supportate solo per la piattaforma Windows.


xmlTransformationRules - regole di trasformazione XML
string. Opzionale. Usare quando enableXmlTransform == true. Valore predefinito: -transform **\*.Release.config -xml **\*.config.

Fornisce un elenco delimitato da nuova riga di regole del file di trasformazione usando la sintassi: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Il percorso del file di risultato è facoltativo e, se non specificato, il file di configurazione di origine verrà sostituito con il file di risultati trasformato.


xmlTransformationRules - regole di trasformazione XML
string. Valore predefinito: -transform **\*.Release.config -xml **\*.config.

Fornisce un elenco delimitato da nuova riga di regole del file di trasformazione usando la sintassi: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Il percorso del file di risultato è facoltativo e, se non specificato, il file di configurazione di origine verrà sostituito con il file di risultati trasformato.


jsonTargetFiles - file di destinazione JSON
string.

Fornisce un elenco di file delimitato da nuova riga per sostituire i valori delle variabili. I nomi di file devono essere forniti in relazione alla cartella radice.

Ad esempio, per sostituire il valore di ConnectionString nell'esempio seguente, è necessario definire una variabile come Data.DefaultConnection.ConnectionString nella pipeline di compilazione o versione (o nell'ambiente della pipeline di versione).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

La sostituzione delle variabili viene eseguita dopo le trasformazioni di configurazione.

Nota: solo le variabili personalizzate definite nelle pipeline di compilazione/versione vengono usate in sostituzione. Le variabili della pipeline predefinite/definite dal sistema vengono escluse. Se le stesse variabili sono definite nella pipeline di versione e nella fase, le variabili di fase supereranno le variabili della pipeline di versione.


xmlTargetFiles - file di destinazione XML
string.

Fornisce un elenco di file delimitato da nuova riga per sostituire i valori delle variabili. I nomi di file devono essere forniti in relazione alla cartella radice.

Per XML, le variabili definite nelle pipeline di compilazione o versione verranno confrontate con le voci key o name nelle sezioni appSettings, applicationSettingse connectionStrings di qualsiasi file di configurazione e parameters.xml.

La sostituzione delle variabili viene eseguita dopo le trasformazioni di configurazione.

Nota: solo le variabili personalizzate definite nelle pipeline di compilazione/versione vengono usate in sostituzione. Le variabili della pipeline predefinite/definite dal sistema vengono escluse. Se le stesse variabili sono definite nella pipeline di versione e nella fase, le variabili di fase supereranno le variabili della pipeline di versione.


Opzioni di controllo attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

Novità di Trasformazione file versione 2:

  • Campi attività più ottimizzati che consentono agli utenti di abilitare qualsiasi/tutte le funzionalità di trasformazione (XML), sostituzione di variabili (JSON e XML) in una singola istanza di attività.
  • L'attività ha esito negativo quando una delle trasformazioni/sostituzioni configurate NON viene applicata o quando l'attività viene no-op.

Usare questa attività per applicare trasformazioni di file e sostituzioni di variabili nei file di configurazione e parametri. Per informazioni dettagliate sull'elaborazione delle traduzioni, vedere Trasformazioni di file e riferimento alla sostituzione delle variabili.

Importante

Questa attività è destinata ai pacchetti Web e richiede un file di pacchetto Web. Non funziona nei file JSON autonomi.

Trasformazioni di file

  • Attualmente, le trasformazioni di file sono supportate solo per i file XML.
  • Per applicare una trasformazione XML ai file di configurazione (*.config) è necessario specificare un elenco di regole dei file di trasformazione separate da una nuova riga usando la sintassi-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • Le trasformazioni dei file sono utili in molti scenari, in particolare quando si esegue la distribuzione in un servizio app e si vogliono aggiungere, rimuovere o modificare configurazioni per ambienti diversi ( ad esempio Sviluppo, Test o Prod) seguendo la sintassi standard della trasformazione Web.config.
  • È anche possibile usare questa funzionalità per trasformare altri file, inclusi i file di configurazione dell'applicazione del servizio Console o Windows (ad esempio, FabrikamService.exe.config).
  • Le trasformazioni dei file di configurazione vengono eseguite prima delle sostituzioni delle variabili.

Sostituzione di variabili

  • Attualmente sono supportati solo i formati di file XML e JSON per la sostituzione delle variabili.
  • I token definiti nei file di configurazione di destinazione vengono aggiornati e quindi sostituiti con i valori delle variabili.
  • Le sostituzioni di variabili vengono eseguite dopo le trasformazioni del file di configurazione.
  • La sostituzione delle variabili viene applicata solo per le chiavi JSON predefinite nella gerarchia degli oggetti. Non crea nuove chiavi.

Nota

Solo le variabili personalizzate definite nelle pipeline di compilazione e versione vengono usate in sostituzione. Le variabili della pipeline di sistema e predefinite vengono escluse.

Ecco un elenco di prefissi attualmente esclusi:

  • agent.
  • azure_http_user_agent
  • build.
  • common.
  • release.
  • system.
  • tf_

Se le stesse variabili sono definite sia nella pipeline di versione che in una fase, le variabili definite dalla fase sostituisce le variabili definite dalla pipeline.

Vedere anche: trasformazioni di file e riferimento alla sostituzione delle variabili.

Esempi

Se è necessaria la trasformazione XML da eseguire in tutti i file di configurazione denominati con pattern .Production.config, la regola di trasformazione deve essere specificata come:

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

Se nella pipeline è presente un file di configurazione denominato in base al nome della fase, è possibile usare:

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

Per sostituire le variabili JSON annidate o gerarchiche, specificarle usando espressioni JSONPath. Ad esempio, per sostituire il valore di ConnectionString nell'esempio seguente, è necessario definire una variabile come Data.DefaultConnection.ConnectionString nella pipeline di compilazione o versione (o in una fase all'interno della pipeline di versione).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

Fabbisogno

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
richieste Nessuno
funzionalità di Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Qualunque
variabili impostabili Qualunque
Versione dell'agente Tutte le versioni dell'agente supportate.
Categoria attività Utilità

Vedere anche