У меня есть личный пакет пакетов NuGet, который я использую для обмена некоторыми функциями и расширениями между моими проектами. Он отлично работает в Visual Studio, но в последнее время я начал настраивать сборку непрерывной интеграции для одного из моих проектов в Visual Studio Online, и кажется, что VSO не может видеть мой личный канал.
Я использую новый метод восстановления пакета - тот, который включает установку флажка "Разрешить NuGet для загрузки отсутствующих пакетов" в опциях VS. Я не использую параметр "Включить восстановление пакета NuGet" в контекстном меню решения, потому что это на самом деле старый способ его выполнения и вызывает проблемы в другом месте.
Я также не делаю ничего, что изменяет мои файлы проекта; Я использую настраиваемое определение сборки (используя материал XAML Workflow), чтобы я мог применить его к любому из моих проектов, просто выбрав его из раскрывающегося списка "Сборка процесса" в редакторе определения сборки. Я делаю это так, потому что я добавляю множество других шагов, включая некоторые сценарии после сборки, чтобы облегчить автоматическое развертывание на сервере хостинга; некоторые из этих шагов немного сложны, поэтому держать их в процессе сборки означает, что мне нужно только установить их один раз.
Итак, не используя старое решение контекстного меню, которое помещает файл nuget.exe в папку решения и не возится с самим проектом, как мне заставить VSO-сборку восстанавливать пакеты из моего личного фида?
Шаблон рабочего процесса сборки имеет активность "NuGetRestore", которая может принимать аргументы командной строки. Я добавил следующее:
"-source https://www.nuget.org/api/v2/ http://www.example.com/nuget"
но это, похоже, не имеет значения. В этом действии также есть поле для "определения решений, требующих восстановления пакетов NuGet", и я просто установил это для переменной ProjectsToBuild
, которая задается при определении сборки. Я не получаю никаких ошибок от nuget.exe(по крайней мере, я не вижу), но сборка не выполняется. Интересно, что в нем говорится, что соответствующие пространства имен не существуют, а не то, что ссылки не могут быть разрешены. Любые идеи?