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.
# 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
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.
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 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 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
, 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/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.
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:
-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 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 | Agent, 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 |