Как можно объединить пакеты CI (автоматическое управление версиями пакетов) и ссылки на проекты? - PullRequest
0 голосов
/ 17 января 2019

У меня есть решение с несколькими библиотеками. Все они публикуются в виде пакетов NuGet с использованием автоматического управления версиями пакетов, предлагаемого Azure DevOps.

Некоторые из этих библиотек зависят от других из того же решения. Мой текущий рабочий процесс - внести изменения в библиотеку A, запустить сборку для публикации новой версии пакета, а затем заставить библиотеку B использовать новую версию A.

Я бы хотел использовать ссылки на проекты, но не знаю, как заставить упаковку работать правильно. Пример сценария:

  • Решение с проектами A и B, где B имеет ссылку на A
  • Запущена сборка для решения
  • Пакет NuGet A генерируется с версией 0.1.0-CI-20190117-120000
  • Пакет NuGet B создается с версией 0.1.0-CI-20190117-120000 и зависит от пакета A с версией 0.1.0-CI-20190117-120000

Я нашел несколько сообщений в блоге Microsoft от 2016 года, в которых исследуется эта тема ( часть 1 и часть 2 ), но, похоже, нет продолжения.

Эта проблема уже решена или мне нужно продолжать использовать мой текущий метод?

1 Ответ

0 голосов
/ 17 января 2019

В вашем сценарии вам не нужно создавать и использовать пакет для совместного использования кода в решении. Пакеты NuGet - это просто способы совместного использования кода вне решения, и после установки пакета NuGet все, что действительно происходит, - это то, что зависимый проект копирует сборку в выходные данные своей сборки, откуда распаковывается пакет NuGet.

Создание пакетов NuGet все еще стоит, если вы считаете, что библиотеки, которые вы используете в своем решении, могут нуждаться в использовании другими в дискретных кодовых базах, но NuGet не добавляет много (если таковые имеются) значения внутри решения.

Управление версиями сборки по-прежнему можно получить независимо от управления версиями пакетов, поэтому версии сборок, на которые вы ссылаетесь внутри решения, совпадают с версиями, которые вы можете предоставлять в пакетах NuGet для совместного использования другими группами.

Мэтт Купер ссылался на сообщение в блоге о GitVersion выше. Это отличный способ автоматически генерировать номера версий на основе исходного кода, и я настоятельно рекомендую его (я часто использую опцию Mainline).

...