NuGet и распределенный контроль версий (DVCS) - PullRequest
52 голосов
/ 16 октября 2010

Интересно, можно ли использовать nuget, чтобы хранить только ссылки на требуемые пакеты в системе управления версиями (только package.config и игнорировать папку пакетов).

Есть ли способ сообщить nuget (пере) загрузить все упомянутые пакеты в различных файлах package.config? Или что-то подобное, которое можно вставить в скрипт сборки.

Обновление:

Похоже, я не единственный, кто запросил эту функцию: См. Этот рабочий элемент (спасибо PHeiberg за подсказку)

Обновление 2:

NuGet теперь имеет встроенную функцию. См. Использование NuGet без передачи пакетов в систему контроля версий для получения подробной информации. Осталось только добавить каталог пакетов в .gitignore или какой-нибудь эквивалент вашей VCS (/packages/ сделает то же самое, если он у вас есть в корне вашего хранилища и вы используете git).

Ответы [ 3 ]

19 голосов
/ 23 августа 2011

Я только что узнал о NuGetPowerTools: https://github.com/davidfowl/NuGetPowerTools

Также см .: http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Обновление: NuGet 1.6 теперь поддерживает восстановление пакета: http://docs.nuget.org/docs/release-notes/nuget-1.6

8 голосов
/ 18 октября 2010

Я не знаю о вашем первом вопросе.

Что касается CI-сервера, который автоматически обновляет пакеты, то теоретически это выполнимо.Вы можете связать команды «List-Package -Installed» и «Update-Package» и обновить каждый пакет до последней версии.См. справочник команд для получения дополнительной информации.

Скотт Гатри говорит это по теме:

"Вы можете интегрировать команду-опцию line with решение CI и выполнение команды update-package явным образом как часть вашего процесса build / CI для получения обновлений.Честно говоря, я не уверен, что имеет смысл для сценариев, о которых мы говорим, хотя, как обычно вы хотитенекоторые разработчики должны принять решение, прежде чем обновлять основную зависимость времени выполнения до новой версии. В модели NuPack по умолчанию разработчик использует NuPack для установки библиотеки, а NuPack автоматически проверяет наличие пакета и зависимостей для контроля версий. Таким образом, другой разработчик (илиCI-серверу) не нужно будет снова использовать NuPack - они могут просто синхронизировать свой исходный код и сборку. Но, как я упоминал ранее, - если вы хотите явно выполнить обновление как часть процесса CI, вы можете. "

Редактировать:

После вашего комментария я вижу, чего вы пытаетесь достичь.Я нашел эту длинную ветку в списке обсуждений NuPack об этой проблеме.Решение, очевидно, не будет частью v1.Единственное решение, которое я вижу, - это пользовательская задача сборки в CI по вашему выбору и конфигурация в вашем репозитории.Пожалуйста, сообщите свои результаты.Вы заинтересовали меня.

5 голосов
/ 28 апреля 2011

В настоящее время обсуждается этот вопрос в блоге Фила Хаака , где он просит дать отзыв о том, как решить этот вопрос.

...