Как включить восстановление пакета Nuget в VSO

Мы используем VS 2015 и VSO. Восстановление пакета Nuget у нас не работает, что вынудило нас проверить более 20 библиотек DLL пакета nuget (плохая практика).

Я попытался включить восстановление пакета nuget в VSO, перейдя по ссылке ниже.

Как включить восстановление пакетов nugets в Visual Studio 2015?< /а>

https://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

Но восстановление пакета, похоже, не работает. И я не знаю, как это будет работать без запуска nuget.exe.

Может кто-нибудь поделиться, удалось ли вам это сделать и как.


person Nil Pun    schedule 13.10.2015    source источник
comment
Где не работает восстановление пакета? В Visual Studio или во время сборки в Visual Studio Online (и в этом случае какой механизм сборки вы используете)?   -  person Pascal Berger    schedule 13.10.2015
comment
Восстановление пакета не работает во время сборки в Visual Studio Online. Мы используем MSBuild.   -  person Nil Pun    schedule 14.10.2015
comment
И вы используете сборку на основе XAML или новую веб-систему сборки?   -  person Pascal Berger    schedule 14.10.2015


Ответы (1)


Проверять пакеты NuGet в системе контроля версий — не лучшая идея. Вам нужно удалить их, а затем использовать восстановление NuGet:

Если вы работаете с системой сборки 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 04.11.2015
comment
Я могу воспроизвести это как с локальными сборками, так и с онлайн-сборками нашей визуальной студии. Пока что единственные проекты, с которыми у нас есть эта проблема, — это проекты vso. Проекты событий, созданные не в VSO, а при использовании в качестве удаленного. Его очень легко воспроизвести, кажется. Прежде чем вы скажете файл .ignore, мы можем подтвердить, что наших пакетов nuget нет в репозитории и никогда не было - person Rex Whitten; 25.10.2016
comment
Ссылка на файл build.proj в вашем ответе (docs.nuget.org/consume/ package-restore/team-build) теперь перенаправляет на docs.microsoft.com/en-us/nuget/consume-packages/. Кэшированную версию страницы, на которую вы ссылались за ноябрь 2015 г., можно найти здесь: https://web.archive.org/web/20151110073248/http://docs.nuget.org/consume/package-restore/team-build - person Frank van Eykelen; 17.05.2017