Версии сборок распределенного приложения с оперативными исправлениями
Мы разрабатываем приложение с компонентами на нескольких физических уровнях, совместно используем множество сборок, а также располагаем некоторыми эксклюзивными для каждого уровня.
Я хочу знать, какова типичная стратегия управления версиями для исправлений для выпусков или только для нескольких компонентов приложения.
Наше программное обеспечение для отслеживания ошибок содержит номер версии для всего продукта. Если текущая версия 1.4.5 и требуется исправление, проблемы с исправлением должны быть выпущены против 1.4.6. Все сборки, затронутые исправлениями для 1.4.6, имеют версию 1.4.6. Если мы распространили только эти файлы, мы получим некоторые файлы в версии 1.4.5, а некоторые - в 1.4.6.
Решением может быть перестройка и выпуск всего приложения в версии 1.4.6, но для этого потребуется перераспределение нескольких компонентов на нескольких машинах, что приведет к ненужному простою компонентов, которые фактически не изменились.
Какие стратегии разработали люди для решения этой проблемы? Это просто вопрос, что некоторые файлы будут иметь разные номера версий? В прошлом я обнаружил, что это вызывает путаницу со службой поддержки клиентов (уровень 1).
1 ответ
Вы задаете интересный вопрос.
Это действительно политическое решение, которое вам нужно принять, чтобы решить, какой будет ваша стратегия развертывания и управления версиями, и учесть компромиссы различных факторов (некоторые из которых вы уже отметили, например, путаница с клиентами).
Одна из вещей, которую вы могли бы сделать, это отделить релиз и управление версиями ваших отдельных уровней, что позволило бы вам иметь согласованное управление версиями на уровне с уменьшенными накладными расходами на развертывание исправлений. Вы также должны были бы выделить отдельные сборки в отдельный пакет и версию, которые также независимы.
Это может быть излишним, поэтому альтернативой может быть упрощение понимания версий. Например, вы можете зарезервировать часть своего номера версии, чтобы указать исправления. Например, если 1.4.5.0 является официальным выпуском, исправление будет 1.4.5.1, и это легко понять как часть официального выпуска 1.4.5.
Вы также можете использовать другие версии сборки, такие как AssemblyInformationalVersion
хранить информацию о версии для ваших пользователей. (Проверьте мой блог для более подробной информации о AssemblyInformationalVersion
и сборка версий в.NET.)