FileTransform@2 - Tarefa de transformação de ficheiros v2

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

Syntax

# 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ório. Valor predefinido: $(System.DefaultWorkingDirectory)/**/*.zip.

Percurso de arquivo para a embalagem ou uma pasta.

As variáveis são Construção e Libertação. Os wildcards são apoiados.

Por exemplo, $(System.DefaultWorkingDirectory)/**/*.zip. Para pastas com fecho, o conteúdo é extraído para a localização TEMP, transformações executadas e os resultados fechados no local do artefacto original.


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

Fornece uma nova lista de regras de ficheiros de transformação separadas utilizando a sintaxe: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. O percurso do ficheiro de resultados é opcional e, se não for especificado, o ficheiro de configuração de origem será substituído pelo ficheiro de resultados transformado.


jsonTargetFiles - Ficheiros-alvo JSON
string.

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

Por exemplo, para substituir o valor da ConnectionString amostra abaixo, é necessário definir uma variável como Data.DefaultConnection.ConnectionString no gasoduto de construção ou libertação (ou libertar o ambiente do gasoduto).

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

A substituição variável é executada após a configuração se transformar.

Nota: Apenas as variáveis personalizadas definidas em gasodutos de construção/libertação são utilizadas em substituição. Estão excluídas variáveis de gasodutos definidos por defeito/sistema. Se as mesmas variáveis forem definidas no gasoduto de libertação e no estágio, então as variáveis de estágio irão substituir as variáveis do gasoduto de libertação.


xmlTargetFiles - Ficheiros-alvo XML
string.

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

Para o XML, as variáveis definidas nos gasodutos de construção ou libertação serão correspondidas com as keyappSettingsentradas ou name entradas no , applicationSettingse connectionStrings secções de qualquer ficheiro config e parameters.xml.

A substituição variável é executada após a configuração se transformar.

Nota: Apenas são utilizadas variáveis personalizadas definidas em gasodutos de construção/libertação em substituição. Estão excluídas variáveis de gasodutos definidos por defeito/sistema. Se as mesmas variáveis forem definidas no gasoduto de libertação e no estágio, então as variáveis de estágio irão substituir as variáveis do gasoduto de libertação.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefa. Para obter mais informações, consulte opções de Controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Novidades na versão 2 do File Transform:

  • Campos de tarefas mais otimizados que permitem aos utilizadores permitir qualquer/toda a transformação (XML), substituição variável (JSON e XML) numa ú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 é operatória.

Utilize esta tarefa para aplicar transformações de ficheiros e substituições variáveis nos ficheiros de configuração e parâmetros. Para obter detalhes sobre como as traduções são processadas, consulte as transformações de ficheiros e a referência de substituição variável.

Importante

Esta tarefa destina-se a pacotes web e requer um ficheiro de pacote web. Não funciona em ficheiros JSON autónomos.

Transformações de ficheiros

  • Atualmente, as transformações de ficheiros são suportadas apenas por ficheiros XML.
  • Para aplicar uma transformação de XML em ficheiros de configuração (*.config) deve especificar uma nova lista de regras de ficheiros de transformação separadas através da sintaxe:-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • As transformações de ficheiros são úteis em muitos cenários, especialmente quando está a implementar para um serviço de Aplicação e quer adicionar, remover ou modificar configurações para diferentes ambientes (como Dev, Test ou Prod) seguindo a sintaxe de transformaçãoWeb.config padrão.
  • Também pode utilizar esta funcionalidade para transformar outros ficheiros, incluindo ficheiros de configuração de aplicações de consola ou serviço do Windows (por exemplo, FabrikamService.exe.config).
  • As transformações de ficheiros Config são executadas antes de substituições variáveis.

Substituição variável

  • Atualmente, apenas os formatos de ficheiroS XML e JSON são suportados para substituição variável.
  • Os tokens definidos nos ficheiros de configuração alvo são atualizados e depois substituídos por valores variáveis.
  • As substituições variáveis são executadas após as transformações de ficheiros config.
  • A substituição variável é aplicada apenas para as teclas JSON predefinidas na hierarquia do objeto. Não cria novas chaves.

Nota

Apenas as variáveis personalizadas definidas em oleodutos de construção e libertação são utilizadas em substituição. Estão excluídas variáveis de pipeline predefinido e de conduta do sistema.

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 tanto no gasoduto de libertação como numa fase, as variáveis definidas em estágio sobrepõem as variáveis definidas pelo gasoduto.

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

Exemplos

Se necessitar de transformação de XML para executar todos os ficheiros de configuração nomeados com padrão .Production.config, a regra de transformação deve ser especificada como:

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

Se tiver um ficheiro de configuração com base no nome artístico do seu pipeline, pode utilizar:

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

Para substituir as variáveis JSON aninhadas ou hierárquicas, especifique-as utilizando expressões JSONPath. Por exemplo, para substituir o valor do ConnectionString na amostra abaixo, deve definir uma variável como Data.DefaultConnection.ConnectionString no gasoduto de construção ou libertação (ou numa fase dentro do pipeline de libertação).

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

Requisitos

Requisito Description
Tipos de gasodutos YAML, Construção clássica, lançamento clássico
Continua Agente, Grupo de Implementação
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer pedidos para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis de configuração Qualquer
Versão do agente Todas as versões de agente suportadas.
Categoria da tarefa Utilitário

Ver também