Я пытаюсь опубликовать и уничтожить версии NuGet пакетов библиотек классов, избегая головных болей для локальной разработки. Вот образец макета решения Visual Studio:
| Libraries
| LibraryA
| LibraryB
| LibraryC
| Applications
| ApplicationD
| ApplicationE
Это единственное решение, содержащее как библиотеки разделенных классов, так и несколько приложений. В настоящее время ссылки на библиотеки классов приложениями являются локальными ссылками в решении.
Мне хотелось бы опубликовать библиотеки (A, B, C) в виде пакетов NuGet с версией, которые затем используются приложениями (D, E). Это позволяет изменять независимую библиотеку от обновления до приложения, которое развертывается. Без этого изменение одной библиотеки может привести к изменению двоичных файлов в десятках или более приложений, все из которых будут технически нуждаться в проверке. Это нежелательно, и управление версиями с помощью NuGet исправляет это.
Однако скажем, что я хочу одновременно обновлять содержимое LibraryA и ApplicationD. Чтобы сделать это после того, как мы перешли на NuGet, мне придется внести изменения в LibraryA, зафиксировать их, дождаться создания пакета, сообщить ApplicationD обновить его ссылку на LibraryA, а затем протестировать или разработать в ApplicationD. Это намного сложнее, чем просто работать с обоими одновременно, используя локальные ссылки в решении.
Каков лучший способ повысить надежность версий пакетов NuGet для моих общих библиотек классов, а также упростить разработку, даже если она охватывает несколько проектов и приложений? Единственные другие решения, которые я нашел, включают слишком много накладных расходов или головную боль, например, необходимость постоянно менять ссылки на ApplicationD между пакетом NuGet и локальным проектом.
РЕДАКТИРОВАТЬ: Чтобы уточнить предпосылку, этот вопрос предполагает следующее:
- Архитектура (решение и организация проекта) не может быть значительно реорганизована.
- Общие библиотеки будут меняться с нетривиальной частотой
- Изменение общей библиотеки не может заставить приложение обновляться
- Приложения могут ссылаться на разные версии разделяемых библиотек