В нашей команде мы пытаемся создать рабочий процесс с несколькими проектами пакетов и сервером репозитория серверов 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 на каждом строить?
Похоже, что событие BeforeClean запускается после этапа восстановления пакета NuGet, поэтому после восстановления пакета пакеты очищаются, поэтому сбои сборки. – Harm