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 appSettings
seções , applicationSettings
e 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 |