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.
#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
.
Путь к файлу к пакету или папке.
Переменные: Build и Release. Поддерживаются подстановочные знаки.
Например, $(System.DefaultWorkingDirectory)/**/*.zip
. Для zip-папок содержимое извлекается в расположение TEMP, выполняется преобразование, а результаты архивируются в исходном расположении артефакта.
xmlTransformationRules
- Правила преобразования XML
string
. Значение по умолчанию: -transform **\*.Release.config -xml **\*.config
.
Предоставляет разделенный новыми строками список правил файлов преобразования с использованием синтаксиса: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
. Путь к файлу результата является необязательным, и если он не указан, исходный файл конфигурации будет заменен преобразованным результирующим файлом.
jsonTargetFiles
- Целевые файлы JSON
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
.
Подстановка переменных выполняется после преобразования конфигурации.
Примечание. В подстановке используются только пользовательские переменные, определенные в конвейерах сборки и выпуска. Переменные конвейера, определенные по умолчанию или системе, исключаются. Если одни и те же переменные определены в конвейере выпуска и на этапе, переменные этапа будут заменять переменные конвейера выпуска.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Новые возможности преобразования файлов версии 2:
- Более оптимизированные поля задач, позволяющие пользователям включать все функции преобразования (XML), подстановки переменных (JSON и XML) в одном экземпляре задачи.
- Задача завершается сбоем, если любое из настроенных преобразований или подстановок не применяется или если задача не выполняется.
Эта задача используется для применения преобразований файлов и подстановок переменных к файлам конфигурации и параметров. Дополнительные сведения о том, как обрабатываются переводы, см. в справочнике по преобразованиям файлов и замене переменных.
Важно!
Эта задача предназначена для веб-пакетов и требует наличия файла веб-пакета. Он не работает с автономными JSON-файлами.
Преобразования файлов
- В настоящее время преобразования файлов поддерживаются только для XML-файлов.
- Чтобы применить xml-преобразование к файлам конфигурации (*.config), необходимо указать разделенный новыми строками список правил файлов преобразования с помощью синтаксиса:
-t ransform <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 |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | Все поддерживаемые версии агента. |
Категория задач | Служебная программа |