Поделиться через


FileTransform@2 — задача преобразования файлов версии 2

Используйте эту задачу для замены маркеров значениями переменных в ФАЙЛАх конфигурации XML или JSON.

Синтаксис

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

Входы

folderPath - пакет или папка
string. Обязательно. Значение по умолчанию: $(System.DefaultWorkingDirectory)/**/*.zip.

Путь к файлу к пакету или папке.

Переменные : сборка и выпуск. Поддерживаются подстановочные знаки.

Например, $(System.DefaultWorkingDirectory)/**/*.zip. Для архивированных папок содержимое извлекается в расположение TEMP, преобразования, выполняемые преобразования и результаты в исходном расположении артефакта.


преобразование enableXmlTransform - XML
boolean. Значение по умолчанию: true.

Преобразования конфигурации будут выполняться до подстановки переменной.

Преобразования XML поддерживаются только для платформы Windows.


правил преобразования XML xmlTransformationRules -
string. Необязательный. Используется при enableXmlTransform == true. Значение по умолчанию: -transform **\*.Release.config -xml **\*.config.

Предоставляет новый список правил файлов преобразования, разделенных линией, с помощью синтаксиса: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Путь к файлу результата является необязательным, а если он не указан, исходный файл конфигурации будет заменен преобразованным файлом результата.


правил преобразования XML xmlTransformationRules -
string. Значение по умолчанию: -transform **\*.Release.config -xml **\*.config.

Предоставляет новый список правил файлов преобразования, разделенных линией, с помощью синтаксиса: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Путь к файлу результата является необязательным, а если он не указан, исходный файл конфигурации будет заменен преобразованным файлом результата.


целевых файлов JSON jsonTargetFiles -
string.

Предоставляет новый разделенный строкой список файлов для замены значений переменных. Имена файлов должны быть предоставлены относительно корневой папки.

Например, чтобы заменить значение ConnectionString в приведенном ниже примере, необходимо определить переменную как Data.DefaultConnection.ConnectionString в конвейере сборки или выпуска (или в среде конвейера выпуска).

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

Подстановка переменных выполняется после преобразований конфигурации.

Примечание. В подстановке используются только пользовательские переменные, определенные в конвейерах сборки и выпуска. Переменные конвейера по умолчанию или системе исключены. Если те же переменные определены в конвейере выпуска и на этапе, переменные этапа заменят переменные конвейера выпуска.


xmlTargetFiles - целевых файлов XML
string.

Предоставляет новый разделенный строкой список файлов для замены значений переменных. Имена файлов должны быть предоставлены относительно корневой папки.

Для XML переменные, определенные в конвейерах сборки или выпуска, будут совпадать с записями key или name в appSettings, applicationSettingsи connectionStrings разделах любого файла конфигурации и parameters.xml.

Подстановка переменных выполняется после преобразований конфигурации.

Примечание. В подстановке используются только пользовательские переменные, определенные в конвейерах сборки и выпуска. Переменные конвейера по умолчанию или системе исключены. Если те же переменные определены в конвейере выпуска и на этапе, переменные этапа заменят переменные конвейера выпуска.


Параметры управления задачами

Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Никакой.

Замечания

Новые возможности преобразования файлов версии 2:

  • Более оптимизированные поля задач, позволяющие пользователям включать функции преобразования (XML), подстановки переменных (JSON и XML) в одном экземпляре задачи.
  • Задача завершается ошибкой, если любая из настроенного преобразования или подстановки не применяется или когда задача no-op.

Используйте эту задачу для применения преобразований файлов и подстановок переменных в файлах конфигурации и параметров. Дополнительные сведения о том, как обрабатываются переводы, см. в преобразованиях файлов и справочнике по замене переменных.

Важный

Эта задача предназначена для веб-пакетов и требует файла веб-пакета. Он не работает с автономными JSON-файлами.

Преобразования файлов

  • В настоящее время преобразования файлов поддерживаются только для XML-файлов.
  • Чтобы применить преобразование XML к файлам конфигурации (*.config), необходимо указать новый список правил файлов преобразования с помощью синтаксиса:-transform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • Преобразования файлов полезны во многих сценариях, особенно при развертывании в службе приложений и необходимости добавлять, удалять или изменять конфигурации для разных сред (например, dev, test или Prod), следуя стандартному синтаксису преобразования Web.config преобразования.
  • Вы также можете использовать эту функцию для преобразования других файлов, включая файлы конфигурации консольного или службы Windows (например, FabrikamService.exe.config).
  • Преобразования файлов конфигурации выполняются до подстановок переменных.

Подстановка переменных

  • В настоящее время поддерживаются только форматы XML-файлов и JSON для подстановки переменных.
  • Маркеры, определенные в целевых файлах конфигурации, обновляются, а затем заменяются значениями переменных.
  • Замены переменных выполняются после преобразования файла конфигурации.
  • Подстановка переменных применяется только для ключей JSON, предопределенных в иерархии объектов. Он не создает новые ключи.

Заметка

В подстановке используются только пользовательские переменные, определенные в конвейерах сборки и выпуска. Переменные конвейера по умолчанию и системные конвейеры исключены.

Ниже приведен список исключенных префиксов:

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

Если одни и те же переменные определены как в конвейере выпуска, так и на этапе, определенные этапом переменные заменяют определяемые конвейером переменные.

См. также: преобразования файлов и ссылки на подстановку переменных.

Примеры

Если требуется преобразование XML для выполнения во всех файлах конфигурации с именем шаблонов .Production.config, необходимо указать правило преобразования следующим образом:

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

Если у вас есть файл конфигурации с именем сцены в конвейере, можно использовать следующее:

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

Чтобы заменить переменные JSON, вложенные или иерархические, укажите их с помощью выражений JSONPath. Например, чтобы заменить значение ConnectionString в примере ниже, необходимо определить переменную как Data.DefaultConnection.ConnectionString в конвейере сборки или выпуска (или на этапе в конвейере выпуска).

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

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
требования Никакой
возможностей Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любой
переменные settable Любой
Версия агента Все поддерживаемые версии агента.
Категория задач Полезность

См. также