Partilhar via


FileTransform@2 - Tarefa de transformação de arquivos 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.
    #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.

Insumos

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

Caminho do arquivo para o pacote ou uma pasta.

As variáveis são Build e Release. Curingas são suportados.

Por exemplo, $(System.DefaultWorkingDirectory)/**/*.zip. Para pastas compactadas, o conteúdo é extraído para o local TEMP, as 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 de variáveis.

As transformações XML são suportadas 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 lista separada por novas 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.


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

Fornece uma lista separada por novas 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 lista de arquivos separados por nova linha para substituir os valores das variáveis. Os nomes dos arquivos 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 compilação ou liberação (ou no ambiente do pipeline de liberação).

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

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

Nota: Somente variáveis personalizadas definidas em pipelines de compilação/liberação são usadas em 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 liberação e no estágio, as variáveis de estágio substituirão as variáveis do pipeline de liberação.


xmlTargetFiles - arquivos de destino XML
string.

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

Para XML, as variáveis definidas nos pipelines de compilação ou liberação serão comparadas com as entradas key ou name nas seções appSettings, applicationSettingse connectionStrings de qualquer arquivo de configuração e parameters.xml.

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

Nota: Somente variáveis personalizadas definidas em pipelines de compilação/liberação são usadas em 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 liberação e no estágio, as variáveis de estágio substituirão as variáveis do pipeline de liberação.


Opções de controlo de tarefas

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

Variáveis de saída

Nenhuma.

Comentários

O que há de novo no File Transform versão 2:

  • Campos de tarefas mais otimizados que permitem aos usuários habilitar qualquer/todos os recursos de transformação (XML), substituição de variáveis (JSON e XML) 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 esta tarefa para aplicar transformações de arquivo e substituições de variáveis em arquivos de configuração e parâmetros. Para obter detalhes sobre como as traduções são processadas, consulte Transformações de arquivo e referência de substituição variável.

Importante

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

Transformações de ficheiros

  • Atualmente, as transformações de arquivo são suportadas apenas para arquivos XML.
  • Para aplicar uma transformação XML a arquivos de configuração (*.config), você deve especificar uma lista separada por novas linhas 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 Dev, Test ou Prod) seguindo o padrão Web.config Transformation Syntax.
  • 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 do arquivo de configuração são executadas antes das substituições de variáveis.

Substituição variável

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

Observação

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

Aqui está uma lista de prefixos atualmente excluídos:

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

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

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

Exemplos

Se você precisar que a transformação XML seja executada em todos os arquivos de configuração nomeados com padrão .Production.config, a regra de transformação deve 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 compilação ou liberação (ou em um estágio dentro do pipeline de liberação).

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

Requerimentos

Exigência Descrição
Tipos de pipeline YAML, Construção clássica, Versão clássica
Funciona em Agente, DeploymentGroup
Exigências Nenhum
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente Todas as versões de agente suportadas.
Categoria de tarefa Utilidade

Ver também