4

Я пытаюсь построить решение на Jenkins с расширением MSBuild. Я перенесла решение с VS 2013 на VS 2015. Чтобы иметь возможность восстанавливать пакеты NuGet в Visual Studio 2015, мне пришлось удалить папку .nuget, как рекомендуется здесь: http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore.Build Visual Studio 2015 Решение с MSBuild 12

Теперь проблема в том, что MSBuild нуждается в папке .nuget, чтобы иметь возможность восстанавливать пакеты nuget.

Build FAILED. 

"E:\_JENKINS\workspace\Project1 - Deploy DEVELOP to BuildServer\Solution1\Build\Build.proj" (DeployTarget target) (1) -> 
E:\_JENKINS\workspace\Project1 - Deploy DEVELOP to BuildServer\Solution1\Build\Build.proj(50,5): 
error MSB4019: The imported project "E:\_JENKINS\workspace\Project1 - Deploy DEVELOP to BuildServer\Solution1\.nuget\NuGet.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 

0 Warning(s) 
1 Error(s) 

Я что-то перепутал? Я что-то совершенно не так?
Поскольку работает только один: восстановление MSBuild или Studio Package Restore.

Так что либо я добавляю папку пакетов в git, либо заменяю автоматическое восстановление в решении с помощью восстановления командной строки или восстановления MSBuild. Но в любом случае оба решения кажутся неправильными.

+3

Просто удалите ссылку на файл целей из ваших файлов проекта (csproj), а затем используйте 'nuget restore solution.sln' для восстановления пакетов перед компиляцией. Документация NuGet больше касается такой миграции. –

ответ

0

Путь NuGet Пакет восстановления работы изменились между Visual Studio 2013 и 2015.

Первым шагом в процессе сборки должен быть прямой призыв к NuGet.exe как:

nuget restore solution.sln 

Я положил NuGet.exe в PATH на моей машине сборки.

Вы должны увидеть на консоли (или протоколе протокола трубопровода) восстанавливаемые пакеты.

Если нет, вам может потребоваться установить настройки прокси-сервера Jenkins, в зависимости от того, где находится ваш Jenkins в сети по отношению к Интернету. Раньше мне приходилось запрашивать учетную запись службы с «привилегированным» доступом к nuget.org/*

После восстановления всех пакетов вы должны увидеть пакет/папку в качестве сиблинга в файл решения в рабочем пространстве Jenkins ,

Затем вы можете вызвать MSBuild с/t: Очистить и/t: перестроить по очереди и ожидать прохождения шага пакета NuGet.