Compartilhar via


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

Use essa 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.
    #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.
    #errorOnInvalidSubstitution: false # boolean. Error on empty files and invalid substitution. Default: false.
  # 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

pacote folderPath - ou de pasta
string. Necessário. Valor padrão: $(System.DefaultWorkingDirectory)/**/*.zip.

Caminho do arquivo para o pacote ou uma pasta.

As variáveis são de build ede versão . Há suporte para curingas.

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.


enableXmlTransform - de transformação XML
boolean. Valor padrão: true.

As transformações de configuração serão executadas antes da Substituição variável.

Importante

As transformações XML têm suporte apenas para a plataforma Windows.


xmlTransformationRules - regras de transformação XML
string. Opcional. Use quando enableXmlTransform == true. Valor padrão: -transform **\*.Release.config -xml **\*.config.

Fornece uma nova lista separada por linha 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.


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

Fornece uma nova lista separada por linha 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 no arquivo de exemplo abaixo, você precisa definir uma variável como ConnectionString no pipeline de Data.DefaultConnection.ConnectionString 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 pelo sistema/padrão 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 versão.


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 versão serão correspondidas às entradas key ou name nas seções appSettings, 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/versão são usadas na substituição. As variáveis de pipeline definidas pelo sistema/padrão 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 versão.


errorOnInvalidSubstitution - Erro em arquivos vazios e substituição inválida.
boolean. Valor padrão: false.

Se selecionado, o pipeline falhará se os arquivos de destino estiverem vazios ou se a substituição falhar.


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 as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Novidades na Transformação de Arquivo 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 é no-op.

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 Transformações de arquivo e referência de substituição 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, as transformações de arquivo têm suporte apenas para arquivos XML.
  • Para aplicar uma transformação XML a arquivos de configuração (*.config) você deve especificar uma lista separada por nova linha de regras de arquivo de transformação usando a sintaxe:-transform <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 de transformação Web.config padrã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 do 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ável

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

Nota

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.

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

Exemplos

Se você precisar que a transformação XML seja executada em todos os arquivos de configuração nomeados com o 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 nomeado 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
Execuções em Agente, DeploymentGroup
de demandas Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente Todas as versões de agente com suporte.
Categoria de tarefa Utilidade

Consulte também