Compartir vía


FileTransform@2: tarea transformación de archivos v2

Use esta tarea para reemplazar tokens por valores de variable en archivos de configuración XML o JSON.

Sintaxis

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

Entradas

folderPath - paquete o carpeta
string. Obligatorio. Valor predeterminado: $(System.DefaultWorkingDirectory)/**/*.zip.

Ruta de acceso del archivo al paquete o a una carpeta.

Las variables son build y Release. Se admiten caracteres comodín.

Por ejemplo, $(System.DefaultWorkingDirectory)/**/*.zip. En el caso de las carpetas comprimidas, el contenido se extrae en la ubicación TEMP, las transformaciones ejecutadas y los resultados se comprimen en la ubicación del artefacto original.


enableXmlTransform - de transformación XML
boolean. Valor predeterminado: true.

Las transformaciones de configuración se ejecutarán antes de la sustitución de variables.

Las transformaciones XML solo se admiten para la plataforma Windows.


xmlTransformationRules - reglas de transformación XML
string. Opcional. Use cuando enableXmlTransform == true. Valor predeterminado: -transform **\*.Release.config -xml **\*.config.

Proporciona una nueva lista separada por líneas de reglas de archivo de transformación mediante la sintaxis: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. 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 resultados transformado.


xmlTransformationRules - reglas de transformación XML
string. Valor predeterminado: -transform **\*.Release.config -xml **\*.config.

Proporciona una nueva lista separada por líneas de reglas de archivo de transformación mediante la sintaxis: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. 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 resultados transformado.


jsonTargetFiles - archivos de destino JSON
string.

Proporciona una nueva lista de archivos separados por líneas para sustituir los valores de variable. Los nombres de archivo se deben proporcionar en relación con la carpeta raíz.

Por ejemplo, para reemplazar el valor de ConnectionString en el ejemplo siguiente, debe definir una variable como Data.DefaultConnection.ConnectionString en la canalización de compilación o versión (o el entorno de la canalización de versión).

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

La sustitución de variables se ejecuta después de las transformaciones de configuración.

Nota: Solo se usan variables personalizadas definidas en canalizaciones de compilación o versión en sustitución. Se excluyen las variables de canalización definidas por el sistema o predeterminadas. Si las mismas variables se definen en la canalización de versión y en la fase, las variables de fase reemplazarán las variables de canalización de versión.


xmlTargetFiles - archivos de destino XML
string.

Proporciona una nueva lista de archivos separados por líneas para sustituir los valores de variable. Los nombres de archivo se deben proporcionar en relación con la carpeta raíz.

Para XML, las variables definidas en las canalizaciones de compilación o versión coincidirán con las entradas de key o name en las secciones de appSettings, applicationSettingsy connectionStrings de cualquier archivo de configuración y parameters.xml.

La sustitución de variables se ejecuta después de las transformaciones de configuración.

Nota: Solo se usan variables personalizadas definidas en canalizaciones de compilación o versión en sustitución. Se excluyen las variables de canalización definidas por el sistema o predeterminadas. Si las mismas variables se definen en la canalización de versión y en la fase, las variables de fase reemplazarán las variables de canalización de versión.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Novedades de La transformación de archivos, versión 2:

  • Campos de tareas más optimizados que permiten a los usuarios habilitar todas o todas las características de transformación (XML), sustitución de variables (JSON y XML) en una sola instancia de tarea.
  • La tarea produce un error cuando no se aplica ninguna de las transformaciones o sustitución configuradas o cuando la tarea es no-op.

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, consulte 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. No funciona en archivos JSON independientes.

Transformaciones de archivos

  • En la actualidad, las transformaciones de archivos solo se admiten para archivos XML.
  • Para aplicar una transformación XML a los archivos de configuración (*.config) debe especificar una lista separada por líneas nuevas de reglas de archivo de transformación mediante la sintaxis:-t ransform <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 desea agregar, quitar o modificar configuraciones para distintos entornos (como Desarrollo, Prueba o Prod) siguiendo la sintaxis de transformación estándar Web.config.
  • También puede usar esta funcionalidad para transformar otros archivos, incluidos los archivos de configuración de la aplicación de servicio de Consola o Windows (por ejemplo, FabrikamService.exe.config).
  • Las transformaciones de archivo de configuración se ejecutan antes de 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 se aplica solo a las claves JSON predefinidas en la jerarquía de objetos. No crea claves nuevas.

Nota

Solo se usan variables personalizadas definidas en canalizaciones de compilación y versión en sustitución. Se excluyen las variables de canalización predeterminadas y del sistema.

Esta es una lista de prefijos excluidos actualmente:

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

Si las mismas variables se definen en la canalización de versión y en una fase, las variables definidas por fases reemplazan a las variables definidas por la canalización.

Vea también: transformaciones de archivo y referencia de sustitución de variables.

Ejemplos

Si necesita la transformación XML para ejecutarse 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 fase de la canalización, puede usar:

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

Para sustituir variables JSON anidadas o jerárquicas, especifíquelas mediante expresiones JSONPath. Por ejemplo, para reemplazar el valor de ConnectionString en el ejemplo siguiente, debe definir una variable como Data.DefaultConnection.ConnectionString 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"
    }
  }
}

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquier
variables settable Cualquier
Versión del agente Todas las versiones de agente admitidas.
Categoría de tarea Utilidad

Consulte también