FileTransform@2 – Tarefa de transformação de arquivo v2

Use esta tarefa para substituir tokens por valores variáveis em arquivos de configuração XML ou JSON.

Sintaxe

# 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 - Pacote ou pasta
string. Obrigatórios. Valor padrão: $(System.DefaultWorkingDirectory)/**/*.zip.

Caminho do arquivo para o pacote ou uma pasta.

As variáveis são Build e Release. Há suporte para caracteres curinga.

Por exemplo, $(System.DefaultWorkingDirectory)/**/*.zip. Para pastas compactadas, o conteúdo é extraído para o local TEMP, transformações executadas e os resultados compactados no local do artefato original.


xmlTransformationRules - Regras de transformação XML
string. Valor padrão: -transform **\*.Release.config -xml **\*.config.

Fornece uma nova lista separada de linhas de regras de arquivo de transformação usando a sintaxe: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. O caminho do arquivo de resultado é opcional e, se não for especificado, o arquivo de configuração de origem será substituído pelo arquivo de resultado transformado.


jsonTargetFiles - Arquivos de destino JSON
string.

Fornece uma nova lista de arquivos separados por linha para substituir os valores de variável. Os nomes de arquivo devem ser fornecidos em relação à pasta raiz.

Por exemplo, para substituir o valor de ConnectionString no exemplo abaixo, você precisa definir uma variável como Data.DefaultConnection.ConnectionString no pipeline de build ou lançamento (ou no ambiente do pipeline de lançamento).

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

A substituição de variável é executada após transformações de configuração.

Observação: somente variáveis personalizadas definidas em pipelines de build/versão são usadas na substituição. As variáveis de pipeline definidas por padrão/sistema são excluídas. Se as mesmas variáveis forem definidas no pipeline de lançamento e no estágio, as variáveis de estágio substituirão as variáveis de pipeline de lançamento.


xmlTargetFiles - Arquivos de destino XML
string.

Fornece uma nova lista de arquivos separados por linha para substituir os valores de variável. Os nomes de arquivo devem ser fornecidos em relação à pasta raiz.

Para XML, as variáveis definidas nos pipelines de build ou de versão serão correspondidas key às entradas ou name nas appSettingsseções , applicationSettingse connectionStrings de qualquer arquivo de configuração e parameters.xml.

A substituição de variável é executada após transformações de configuração.

Observação: somente variáveis personalizadas definidas em pipelines de build/lançamento são usadas na substituição. As variáveis de pipeline definidas por padrão/sistema são excluídas. Se as mesmas variáveis forem definidas no pipeline de lançamento e no estágio, as variáveis de estágio substituirão as variáveis de pipeline de lançamento.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Comentários

Novidades na Transformação de Arquivos versão 2:

  • Campos de tarefa mais otimizados que permitem que os usuários habilitem qualquer/todos os recursos de transformação (XML), JSON e XML (substituição variável) em uma única instância de tarefa.
  • A tarefa falha quando qualquer uma das transformações/substituições configuradas NÃO é aplicada ou quando a tarefa não é operada.

Use essa tarefa para aplicar transformações de arquivo e substituições de variáveis em arquivos de configuração e parâmetros. Para obter detalhes de como as traduções são processadas, consulte Referência de substituição de arquivo e de substituição de variável.

Importante

Essa tarefa destina-se a pacotes Web e requer um arquivo de pacote da Web. Ele não funciona em arquivos JSON autônomos.

Transformações de arquivo

  • Atualmente, há suporte para transformações de arquivo apenas para arquivos XML.
  • Para aplicar uma transformação XML a arquivos de configuração (*.config), você deve especificar uma nova lista separada por linha de regras de arquivo de transformação usando a sintaxe:-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • As transformações de arquivo são úteis em muitos cenários, especialmente quando você está implantando em um serviço de aplicativo e deseja adicionar, remover ou modificar configurações para ambientes diferentes (como Desenvolvimento, Teste ou Prod) seguindo a sintaxe padrãoWeb.config Transformação.
  • Você também pode usar essa funcionalidade para transformar outros arquivos, incluindo arquivos de configuração de aplicativo de serviço do Console ou windows (por exemplo, FabrikamService.exe.config).
  • As transformações de arquivo de configuração são executadas antes das substituições de variáveis.

Substituição de variáveis

  • Atualmente, há suporte apenas para formatos de arquivo XML e JSON para substituição de variável.
  • Os tokens definidos nos arquivos de configuração de destino são atualizados e substituídos por valores variáveis.
  • As substituições variáveis são executadas após transformações de arquivo de configuração.
  • A substituição de variável é aplicada apenas para as chaves JSON predefinidas na hierarquia de objetos. Ele não cria novas chaves.

Observação

Somente variáveis personalizadas definidas em pipelines de build e lançamento são usadas na substituição. As variáveis de pipeline padrão e do sistema são excluídas.

Aqui está uma lista de prefixos excluídos no momento:

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

Se as mesmas variáveis forem definidas no pipeline de lançamento e em um estágio, as variáveis definidas pelo estágio substituirão as variáveis definidas pelo pipeline.

Consulte também: Transformações de arquivo e referência de substituição de variável.

Exemplos

Se você precisar de transformação XML para executar em todos os arquivos de configuração nomeados com padrão .Production.config, a regra de transformação deverá ser especificada como:

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

Se você tiver um arquivo de configuração chamado com base no nome do estágio em seu pipeline, poderá usar:

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

Para substituir variáveis JSON aninhadas ou hierárquicas, especifique-as usando expressões JSONPath. Por exemplo, para substituir o valor de ConnectionString no exemplo abaixo, você deve definir uma variável como Data.DefaultConnection.ConnectionString no pipeline de build ou lançamento (ou em um estágio dentro do pipeline de lançamento).

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

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
É executado em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda por tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente Todas as versões do agente com suporte.
Categoria da tarefa Utilitário

Confira também