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 key
name
voci o nelle appSettings
sezioni di , applicationSettings
e 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à |