NuGet: Как сохранить версии пакетов в нескольких решениях?
Мы создаем набор из нескольких сервисов, каждая служба имеет собственное решение с соответствующими проектами. Многие из этих сервисов полагаются на те же пакеты NuGet.
Все решения имеют "Восстановление пакетов".
Некоторые из решений относятся к сборкам, принадлежащим другим решениям, это одна очевидная причина, по которой нам нужны все решения для обращения к точно таким же версиям различных пакетов NuGet.
Все сервисы должны работать вместе для достижения конечного результата. Они упакованы и установлены как часть одного продукта, что является еще одной причиной, по которой мы хотели бы, чтобы все было запущено с теми же версиями пакетов NuGet
У нас возникают проблемы с совместимостью версий пакетов между решениями.
В настоящее время мы вручную проверяем и обновляем версии пакета, мы также получаем случайные ошибки компиляции, потому что проекты в одном решении заканчиваются ссылкой на разные версии одного и того же пакета.
Есть ли рекомендуемый способ сделать это (надеюсь, автоматический процесс)?
Можем ли мы стать лучше без восстановления пакетов?
У кого-нибудь есть общие рекомендации по этому вопросу?
Спасибо
Обновление: я создал проблему для этого в проекте NugGet http://nuget.codeplex.com/workitem/2623
Ответы
Ответ 1
Чтобы решить эту проблему:
- Создайте свой собственный сервер NuGet (см. 1 и 2), в котором размещаются правильные версии используемых вами пакетов.
- Настройте каждую систему сборки для использования этого сервера и автоматического обновления до последней версии.
Хотя для этого требуется сервер, он не только гарантирует, что все имеют правильную версию, но также ускоряют загрузку для серверов сборки.
Ответ 2
Вы можете настроить свои сборки TFS для обновления всех пакетов NuGet в решении до последних версий с помощью команды nuget update
.
Последние версии могут быть от nuget.org, локального сервера NuGet или даже сетевого ресурса. Используйте параметр source
, чтобы определить источники, из которых вы хотите обновить.
Вы можете выполнить конфигурацию сборки через proj файлы MsBuild или через шаблон TFS.