Версии Nuget/Assembly - Нужно ли увеличивать версию, даже если ничего не изменилось?
У меня есть решение с парой проектов, и каждый проект построен на сервере TFS и упакован в отдельный пакет Nuget.
Когда я запускаю сборку на сервере сборки, новая версия пакетов nuget создается и публикуется. Я использовал один и тот же номер версии с автоматическим увеличением для всех пакетов.
Должен ли я создать новую версию пакета, даже если в этом конкретном проекте ничего не изменилось?
Есть ли какой-нибудь инструмент или статья, которая помогла бы мне опубликовать новые пакеты, только если реальный проект (или, возможно, одна из его зависимостей) изменился? Кто-нибудь делал это?
РЕДАКТИРОВАТЬ:
В моем решении у меня есть проекты ( * форматproject(references) -> Package Name
):
- A -> PackageA
- B(A) -> Пакет B(Пакет A)
- C -> PackageC
- IntegrationTest (A, B, C)
и общий version.txt.
когда я изменяю сборку проекта C на сервере сборки, все пакеты перепаковываются с файлом version.txt на сервере сборки и публикуются.
Тогда у меня есть другое решение, которое потребляет эти пакеты.
1 ответ
Поскольку вы не можете думать, вы сможете упаковать другие проекты, когда вы хотите упаковать один из них:
Можете ли вы подумать, что каждый раз, когда вы захотите создать nuget конкретного проекта, другие проекты тоже будут готовы к упаковке? Или, может быть, будет начата разработка других проектов. - Пауло Суассуна 55 минут назад
нет, я не могу это рассмотреть - Liero 18 минут назад
Не следует создавать новые версии всех проектов каждый раз, когда вы хотите упаковать проект решения. Вместо этого вы должны всегда создавать один и только вы хотите упаковать. Кроме того, я полагаю, вы используете ссылку проекта между проектом решения. В этом случае вам также не следует этого делать, потому что вы будете ссылаться на нестабильные версии ваших проектов. Пример:
Вы хотите дополнить проект B новым проектом:
- Вы регистрируетесь изменения в B
- Некоторая плохая регистрация попадает в
- Вы строите свое решение на своем сервере сборки
- сборка пакетов плохой нюгет для А
- Ваш пакет B NuGet будет ссылаться на ошибочный пакет A NuGet.
На самом деле, вы должны относиться к ним как к различным продуктам, поэтому вы должны изменить их для справки Nuget. Таким образом, вы гарантируете, что используете стабильную версию других проектов. пример
Вы хотите дополнить проект B новым проектом:
- Вы регистрируете изменение в B (B ссылается на стабильный пакет Nuget 1.0 A)
- Некоторая плохая регистрация попадает в
- Вы строите свое решение на своем сервере сборки
- Сборка пакетов нового B с зависимостью A.1.0.nupkg (не имеет значения, если последний A имеет плохую регистрацию)
- В итоге у вас хороший пакет B NuGet.
Вы можете хранить все проекты в рамках одного решения, но не забудьте изменить ссылку между ними как ссылку NuGet.