Невозможность сборки VS Online из-за Nuget, работает локально

Работает локально в VS2015. Все нормально строится. Если я выполняю развертывание в VS Online, сборка завершается с ошибкой, так как не может найти HTML Agility Pack, который находится в решении в виде пакета Nuget. Я проверил, что в VS Online установлен флажок «Восстановить пакеты NuGet».

Любые мысли о том, что я не делаю.


person Tim Almond    schedule 15.09.2015    source источник
comment
Я видел подобное раньше. Проверьте этот ответ для возможного объяснения.   -  person Yan Sklyarenko    schedule 15.09.2015
comment
Это объяснение, может быть. Какое решение? Также применить пакет nuget к первому проекту?   -  person Tim Almond    schedule 16.09.2015
comment
Решение состоит в том, чтобы изменить расположение папок в репозитории, чтобы все *.csproj помещались во вложенные папки на уровне *.sln. Это заставит логику по умолчанию этой задачи сборки работать должным образом.   -  person Yan Sklyarenko    schedule 16.09.2015
comment
@YanSklyarenko, вы работаете с системой сборки vNext в VSO или работаете с определением сборки XAML? Пожалуйста, проверьте мой ответ ниже для получения подробной информации о различиях.   -  person Vicky - MSFT    schedule 16.09.2015
comment
@YanSklyarenko это то, что у меня есть - папка с файлом .sln и подпапкой для каждого проекта, а в этой папке находится файл packages.config, который включает ссылку на HtmlAgilityPack, и все это отлично работает в разработке.   -  person Tim Almond    schedule 16.09.2015
comment
@TimAlmond, тогда это не твой случай.   -  person Yan Sklyarenko    schedule 16.09.2015


Ответы (2)


Хорошо, кажется, я нашел проблему. Пакеты были проверены в системе контроля версий. Не уверен, должны они или нет, но мы здесь. Удалив их из папки пакетов, он, похоже, восстановил их из Nuget и на этот раз работал.

person Tim Almond    schedule 16.09.2015

Если вы работаете с системой сборки vNext в VSO, все, что вам нужно сделать, это установить флажок Восстановить пакеты NuGet в определении сборки и выбрать файл .sln, который вы хотел бы построить.

введите здесь описание изображения

Если вы работаете с одним определением сборки XAML, необходимо выполнить несколько шагов (описанных здесь), которым нужно следовать, чтобы эти пакеты NuGet были восстановлены в процессе сборки VSO (TFS).

  1. Добавьте в решение следующие элементы. (Содержимое файлов nuget.config и .tfignore можно найти здесь)

введите здесь описание изображения

  1. Добавьте один файл build.proj по корневому пути папки решения. (Содержимое файла build.proj можно найти здесь)

  2. Создайте одну папку с именем tools в корневом каталоге папки решения. Создайте подпапку NuGet в папке tools, загрузите и сохраните nuget.exe по пути tools\NuGet.

  3. Зарегистрируйте nuget.config, .tfignore, build.proj и tools\NuGet\nuget.exe в TFS. контроль версий.

  4. Измените определение сборки, чтобы выбрать сборку файла build.proj. введите здесь описание изображения

После этого пакеты NuGet будут успешно восстановлены в процессе сборки TFS.

person Vicky - MSFT    schedule 16.09.2015
comment
Спасибо. Я использую vNext и указал восстановить пакеты, но это не работает. - person Tim Almond; 16.09.2015