FileTransform@2 - Attività trasformazione file v2

Usare questa attività per sostituire i token con valori di variabile 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.
    #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.

Input

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

Percorso 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, nelle trasformazioni eseguite e nei risultati compressi nella posizione dell'artefatto originale.


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

Fornisce un elenco newline-separated di regole di 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 risultato trasformato.


jsonTargetFiles - File di destinazione JSON
string.

Fornisce un elenco di file separati da nuove linee 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 rilascio).

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

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

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


xmlTargetFiles - File di destinazione XML
string.

Fornisce un elenco di file separati da nuove linee 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 rilascio verranno corrispondenti alle keyname voci o nelle appSettingssezioni di , applicationSettingse connectionStrings di qualsiasi file di configurazione e parameters.xml.

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

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


Opzioni di controllo attività

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

Variabili di output

No.

Osservazioni

Novità di Trasformazione file versione 2:

  • Campi attività ottimizzati che consentono agli utenti di abilitare qualsiasi/tutte le funzionalità di trasformazione (XML), sostituzione delle variabili (JSON e XML) in un'unica istanza dell'attività.
  • L'attività ha esito negativo quando una delle trasformazioni o della sostituzione configurata non viene applicata o quando l'attività non è op.

Usare questa attività per applicare trasformazioni file e sostituzioni di variabili nei file di configurazione e parametri. Per informazioni dettagliate sul modo in cui vengono elaborate le traduzioni, vedere Riferimenti alle trasformazioni file e alla sostituzione delle variabili.

Importante

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

Trasformazioni di file

  • Attualmente, le trasformazioni dei file sono supportate solo per i file XML.
  • Per applicare una trasformazione XML ai file di configurazione (*.config) è necessario specificare un elenco newline-separated delle regole del file di trasformazione 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 distribuisce in un servizio app e si desidera aggiungere, rimuovere o modificare configurazioni per ambienti diversi(ad esempio Dev, Test o Prod) seguendo la sintassi di trasformazioneWeb.config standard.
  • È anche possibile usare questa funzionalità per trasformare altri file, inclusi i file di configurazione dell'applicazione 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 valori di variabile.
  • Le sostituzioni delle variabili vengono eseguite dopo le trasformazioni dei file di configurazione.
  • La sostituzione delle variabili viene applicata solo per le chiavi JSON predefinite nella gerarchia degli oggetti. Non crea nuove chiavi.

Nota

Vengono usate solo le variabili personalizzate definite nelle pipeline di compilazione e rilascio. Le variabili della pipeline di sistema predefinite e di sistema sono 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 sostituiscono le variabili definite dalla pipeline.

Vedere anche: Riferimenti alle trasformazioni dei file e alla sostituzione delle variabili.

Esempio

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

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

Se si dispone di un file di configurazione denominato in base al nome di fase nella pipeline, è 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"
    }
  }
}

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Esecuzione in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente Tutte le versioni dell'agente supportate.
Categoria attività Utilità

Vedi anche