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 | Любой |
Версия агента | Все поддерживаемые версии агента. |
Категория задач | Полезность |