NuGet — как настроить восстановление пакета в MonoDevelop/Xamarin Studio

Читая Использование NuGet без передачи пакетов в систему управления версиями I' я понял, что мне нужно добавить папку .nuget в свой проект, чтобы включить восстановление пакета во время сборки... и чтение Подготовить репозиторий git для NuGet Я понял, что могу удалить NuGet.exe и NuGet.config и позволить IDE загрузить их автоматически, установив DownloadNuGetExe на true в NuGet.targets.

Ну, я немного запутался, так как 1) Xamarin Studio не загружает ни NuGet.exe, ни NuGet.config... и 2) папка .nuget вообще не нужна, так как можно просто ввести команду Восстановить пакеты NuGet в обозревателе решений, и пакеты все равно восстанавливаются.

Сказав это, как правильно настроить восстановление пакетов в Xamarin Studio/MonoDevelop?


person j3d    schedule 28.09.2013    source источник


Ответы (2)


Включение восстановления пакета, чтобы оно происходило при компиляции проекта, невозможно с помощью надстройки NuGet для Xamarin Studio. Это то, что я не реализовал. Если вы хотите сделать это, вам придется добавить файлы вручную и отредактировать проект, чтобы использовать файл NuGet.targets.

Лично я бы вместо этого использовал пункт меню «Восстановить пакеты NuGet» и не использовал файл NuGet.targets. Одна вещь, которую вы здесь теряете, — это запуск восстановления пакета при каждой сборке, однако вам нужно сделать это только один раз. Вы также получаете некоторые преимущества использования этого подхода:

  1. Ваш проект не нуждается в модификации.
  2. Все пакеты NuGet будут восстановлены перед запуском XBuild, поэтому любые пакеты NuGet, имеющие собственный импорт XBuild, будут восстановлены и доступны во время компиляции.
person Matt Ward    schedule 30.09.2013
comment
Команда NuGet рекомендует использовать восстановление NuGet вместо файла NuGet.targets. Последняя версия NuGet автоматически восстанавливает пакеты NuGet при компиляции, не требуя файла NuGet.targets. Так что это можно реализовать в надстройке Xamarin Studio. Недостатком является то, что надстройка должна быть загружена при запуске, чтобы обнаружить любые события сборки. По этой причине я добавил поддержку восстановления, запускаемого только через меню. - person Matt Ward; 01.02.2014

Или вы можете использовать восстановление нового пакета в 2.7. Просто беги

nuget.exe restore <your_solution_file>

для восстановления всех пакетов, используемых проектами в решении.

См. http://docs.nuget.org/docs/reference/package-restore для подробностей.

person Fei Ling    schedule 05.10.2013
comment
nuget restore solution.sln У меня работает в моно с NuGet 3.3, но не для локальных (каталогов) репозиториев. Конечно, локальные репозитории не работают для меня и из графического интерфейса, так что... - person tekHedd; 23.01.2016