2015-12-08 2 views
0

В нашей команде мы пытаемся создать рабочий процесс с несколькими проектами пакетов и сервером репозитория серверов NuGet. Но чтобы избежать развертывания пакетов при каждом изменении, каждый разработчик имеет собственный локальный репозиторий на своем компьютере. Сценарий:Восстановление локального репозитория и восстановления пакетов NuGet

Разработчик работает над пакетом и зависимым проектом. Он не выпускает новую версию пакета и не развертывает ее в репозитории команд NuGet до стабильной версии (поэтому версия не изменяется до выпуска).

Project_A создает Project_A.nupkg и разворачивает его в локальном репозитории при событии post build (например, версия 1.0.0.0).

Project_B имеет зависимость от Project_A.nupkg и вытаскивает его из локального репозитория из-за того, что пакет NuGet восстанавливает встроенные функции.

Проблема заключается в том, что разработчик меняет что-то в Project_A и перенаправляет его в локальный репозиторий, Project_B не получает это обновление из-за той же версии пакета в уже существующей папке пакетов.

Я пробовал:

  • подход с удалением папки пакеты на встроенных событие, но оно удаляется после того, как пакет-восстановления MSBuild задачи, поэтому построить не удалось.
  • добавьте часть «до релиза» в версию (http://docs.nuget.org/docs/reference/versioning), но пакет не обновляется из репозитория, если версия не изменяется.

  • вручную вызвать Update-Package -Reinstall -IncludePrerelease из пакета менеджера консоли, но это дает Package 'Project_A.1.0.0-alpha' already exists in folder '...\packages'

Что является лучшим решением этой проблемы, кроме изменения версии в AssemblyInfo.cs из Project_A на каждом строить?

ответ

0

Очистить папку пакетов на событии BeforeClean и всегда перестраивать проект, если вы хотите использовать более новую версию Project_A.

+0

Похоже, что событие BeforeClean запускается после этапа восстановления пакета NuGet, поэтому после восстановления пакета пакеты очищаются, поэтому сбои сборки. – Harm