Я пытаюсь получить проекты DNX, основанные на принимающем агенте VSO.Выполнение восстановления DNU на VSO build
First вещь - установка DNX. У меня есть следующий Powershell скрипт, чтобы сделать это:
DNX-upgrade.ps1:
dnvm upgrade -r clr -arch x86 -v 1.0.0-beta6
Он успешно устанавливает и PATH обновляется:
Добавление C: \ Users \ buildguest.dnx \ runtimes \ dnx-clr-win-x86.1.0.0-beta6 \ bin to process PATH
Добавление C: \ Users \ buildguest.dnx \ runtimes \ dnx-clr-win-x86.1.0. 0-beta6 \ Бен пользователя PATH
Затем мне нужно восстановить пакеты Решение с помощью этого сценария:
ДНУ-restore.ps1:
dnu restore
Но я получаю следующее сообщение об ошибке при Выполнение dnu-restore.ps1:
[error] dnu: Термин 'dnu' не является распознается как имя командлета, функции, файла сценария или операционной системы . Проверьте
[ошибка] правописание от имени или если путь был включен, убедитесь, что путь правильный и повторите попытку.
[ошибка] В C: \ а \ 8ac4a4f6 \ Root \ MyProject \ Разработка \ ДНУ-restore.ps1: 1 символ: 1
[ошибка] + ДНУ восстановление
[ошибка] + ~~~
[ ошибка] + CategoryInfo: ObjectNotFound: (ДНУ: String) [], CommandNotFoundException
[ошибка] + FullyQualifiedErrorId: CommandNotFoundException
Строительные задачи:
Почему это происходит? Неужели dnu
должен выполнить? Есть ли лучший способ восстановить пакеты проектов DNX?
Можете ли вы добавить все шаги сборки в один скрипт? Я не уверен, как VSO запускает каждый шаг сборки, но может случиться так, что родительский процесс запущен до того, как переменная окружения задана dnvm, а последующие шаги сборки не поднимут изменения. –
@ VictorHurdugaci: да, что-то странное происходит ... как говорится в сообщении: «Добавление C: \ Users \ buildguest.dnx \ runtimes \ dnx-clr-win-x86.1.0.0-beta6 \ bin для пользователя PATH', что означает, что он должен был быть доступен для второго скрипта ... @ davenewza: вы все еще видите эту проблему? –
@KiranChalla Не обязательно. Я знаю, что некоторые серверы сборки, такие как TeamCity, запускают каждый шаг в другом процессе. Таким образом, если один процесс добавляет что-то к пути, второй не будет его подбирать, потому что у них есть тот же родительский процесс, который был запущен до того, как был установлен env var. –