как читать переменные сеанса с помощью специальных символов, пробелов и т. д. в powershell для целевой задачи машины в tfs 2015 - PullRequest
0 голосов
/ 11 февраля 2019

Сегодня мы используем Release Management (клиент / сервер) для наших развертываний, и у нас есть шаблоны выпуска на основе агентов и vNext, и у нас есть код powershell, который заботится об этих развертываниях.Теперь мы переходим к веб-версии управления выпусками в tfs 2015, и мы хотим использовать задачу «powershell on target Machine» для вызова нашего базового сценария (который затем импортирует другие модули PS), который заботится о развертывании.Проблема, с которой мы сталкиваемся, связана с переменными, нам нужно передать много переменных в наш код, затем эти переменные будут преобразованы и заменены в наших конфигурационных файлах.эти переменные имеют специальные символы, пробелы и т. д., и когда мы передаем эти переменные в переменные Session, развертывание завершается неудачно из-за символа char или пробела и т. д. Есть ли способ передать переменные в наш код без получения ошибки.

мы добавили в нашу версию встроенную задачу powershell, которая добавит все переменные в файл XML, и этот файл будет находиться на сервере сборки, затем мы добавим задачу копирования файла Windows, чтобы переместить этот файл в целевойсервер еще одна задача PowerShell на целевой машине, которая вызывает наш базовый сценарий, который мы обновили для чтения переменных из XML-файла.но проблема в том, что мы закончили тем, что добавили 4 задачи в нашем выпуске, чтобы позаботиться об одном компоненте в Release Management, и некоторые из наших выпусков довольно сложны, где у нас ~ 20 компонентов, и если нам нужно перенести это в веб-релизУправление мы должны добавить ~ 80 шагов, которые добавят много путаницы.Есть ли лучший способ сделать это?Пожалуйста, дайте мне знать, если у меня есть какой-то смысл, или если требуются дополнительные сведения Переменные screeshot

приложил снимок экрана переменных, которые я пытаюсь передать переменным сеанса в powershell на целевой задаче машины,у этих переменных есть '=' в них, и когда они передаются задаче, я получаю следующую ошибку "2019-02-11T17: 11: 19.9812595Z ## [error] Выполнение команды остановлено, поскольку переменная предпочтения" ErrorActionPreference "или общаядля параметра установлено значение Стоп: найденное значение «Источник» без соответствующего ключа "

1 Ответ

0 голосов
/ 05 марта 2019

мы шли в неправильном направлении чтения переменных через переменные сеанса, мы обнаружили, что существует API, который делает все переменные выпуска доступными.

https://{tfsurl}/{collection}/{project}/_apis/release/releases/{releaseId}?api-version=3.0-preview.1

, которые мы затем обновилинаш код для получения переменных, основанных на среде

...