Tarea Transformación de archivos
Use esta tarea para aplicar transformaciones de archivos y sustituciones de variables en archivos de configuración y parámetros. Para obtener más información sobre cómo se procesan las traducciones, vea Referencia de sustitución de variables y transformaciones de archivos.
Importante
Esta tarea está pensada para paquetes web y requiere un archivo de paquete web y no funciona en archivos JSON independientes.
Transformaciones de archivo
En la actualidad, las transformaciones de archivos solo se admiten para archivos XML.
Para aplicar la transformación XML a los archivos de configuración (*.config) debe especificar una lista separada por nueva línea de reglas de archivo de transformación mediante la sintaxis :
-transform <path to the transform file> -xml <path to the source file> -result <path to the result file>Las transformaciones de archivos son útiles en muchos escenarios, especialmente cuando se implementa en un servicio de aplicaciones y se quiere agregar, quitar o modificar configuraciones para distintos entornos (por ejemplo, desarrollo, pruebas o producción) siguiendo la sintaxis de transformación estándar Web.config Transformation.
También puede usar esta funcionalidad para transformar otros archivos, incluidos los archivos de configuración de aplicaciones de consola o Windows servicio (por ejemplo, FabrikamService.exe.config).
Las transformaciones del archivo de configuración se ejecutan antes que las sustituciones de variables.
Sustitución de variables
Actualmente solo se admiten formatos de archivo XML y JSON para la sustitución de variables.
Los tokens definidos en los archivos de configuración de destino se actualizan y, a continuación, se reemplazan por valores de variable.
Las sustituciones de variables se ejecutan después de las transformaciones del archivo de configuración.
La sustitución de variables solo se aplica a las claves JSON predefinidas en la jerarquía de objetos. No crea nuevas claves.
Ejemplos
Si necesita que la transformación XML se ejecute en todos los archivos de configuración denominados con el patrón .Production.config, la regla de transformación debe especificarse como:
-transform **\*.Production.config -xml **\*.config
Si tiene un archivo de configuración denominado en función del nombre de la fase de la canalización, puede usar:
-transform **\*.$(Release.EnvironmentName).config -xml **\*.config
Para sustituir variables JSON anidadas o jerárquicas, es especificarlas mediante expresiones JSONPath. Por ejemplo, para reemplazar el valor de ConnectionString en el ejemplo siguiente, debe definir una variable como en la canalización de compilación o versión (o en una fase dentro de la canalización de versión).
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Nota
Solo las variables personalizadas definidas en las canalizaciones de compilación y versión se usan en la sustitución. Se excluyen las variables predeterminadas y de canalización del sistema.
Esta es una lista de prefijos actualmente excluidos:
- 'agent'.
- 'azure_http_user_agent'
- "build".
- 'common'.
- "release".
- "system".
- 'tf_'
Si se definen las mismas variables en la canalización de versión y en una fase, las variables definidas por fases sustituyen a las variables definidas por la canalización.
Vea también: Referencia de sustitución de variables y transformaciones de archivos.
Peticiones
None
Fragmento de código YAML
# File transform
# Replace tokens with variable values in XML or JSON configuration files
- task: FileTransform@1
inputs:
#folderPath: '$(System.DefaultWorkingDirectory)/**/*.zip'
#enableXmlTransform: # Optional
#xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config-transform **\*.$(Environment.Name).config -xml **\*.config' # Optional
#fileType: # Optional. Options: xml, json
#targetFiles: # Optional
Argumentos
| Argumento | Descripción |
|---|---|
| Paquete o carpeta folderPath |
Ruta de acceso del archivo al paquete o a una carpeta. Variables ( Compilación | Release ), se admiten caracteres comodín. Por ejemplo, $(System.DefaultWorkingDirectory)/*/.zip.
En el caso de las carpetas comprimida, el contenido se extrae en la ubicación TEMP, las transformaciones ejecutadas y los resultados se comprimieron en la ubicación del artefacto original.
|
| Transformación XML enableXmlTransform |
Habilite esta opción para aplicar transformaciones XML en función de las reglas especificadas a continuación. Las transformaciones de configuración se ejecutan antes de cualquier sustitución de variables. Las transformaciones XML solo se admiten para Windows plataforma. |
| Reglas de transformación xmlTransformationRules |
Proporcionar una lista separada por nueva línea de reglas de archivo de transformación mediante la sintaxis-transform <path to the transform file> -xml <path to the source configuration file> -result <path to the result file>La ruta de acceso del archivo de resultados es opcional y, si no se especifica, el archivo de configuración de origen se reemplazará por el archivo de resultado transformado. |
| Formato de archivo fileType |
Especifique el formato de archivo en el que se va a realizar la sustitución. La sustitución de variables se ejecuta después de cualquier transformación de configuración. Para XML, las variables definidas en las canalizaciones de compilación o versión se coincidirán con las entradas de token ('key' o 'name') de las secciones appSettings, applicationSettings y connectionStrings de cualquier archivo de configuración y parameters.xml archivo. |
| Archivos de destino targetFiles |
Proporcione una lista de archivos separados por nueva línea para la sustitución de variables. Los nombres de archivo deben especificarse en relación con la carpeta raíz. |
Código Abierto
Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.