2015-01-23 3 views
3

У меня есть вопрос о лучшей практике, чтобы сделать наше программное обеспечение «исправленным».Как создать систему патчей

Некоторая информация Abour нашего продукта/компании:

  1. Мы создаем наше использование программного обеспечения C#/WPF
  2. Использование Visual Studio 2013
  3. Есть некоторые возможности настройки мейкером (Advanced инсталлятора)
  4. Использование TFS для контроля источника.

Каждый раз, когда мы создаем релиз, мы помещаем ее в новую отрасль в ССТ, так что структура выглядит следующим образом:

  • - Основные
  • - Релизы
  • ---- Версия 1.0.0.0
  • ---- Версия 2.2.0.0
  • ---- Версия 3.3.0.0 (не реальные номера версий).

Теперь у меня есть проблема, что я не знаю, как сделать наш продукт исправленным, без создания патча для каждой версии. Потому что если ошибка в версиях 1.0.0.0 и 2.2.0.0, и я не хочу устанавливать самую новую версию (3.3.0.0), мне нужно исправить обе версии (1.x и 2.x).

Есть ли способ сделать это более элегантным и удобным для меня?

Спасибо!

ответ

1

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

Отъезд http://stories.visualstudio.com, чтобы увидеть, как большой продукт решил проблему.

Если вы думаете, что «это слишком сложно», то у вас, вероятно, будет слишком много технического долга (или более аккуратно неохваченного фонда), и вам нужно обратиться к этому в первую очередь.

Посмотрите флаги функций для кода и Ready Roll или SSDT для баз данных.

+0

Я думаю, что вы правы, я изложил ваш пост и ответ из-за этого: «Если вы думаете, что это слишком сложно», тогда у вас, вероятно, будет слишком много технического долга (или более аккуратно неохваченного фонда), и вам нужно обратиться это первый .'. Это верно и одна из наших основных проблем. Спасибо :) – BendEg

3

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

+0

Хорошо, что мы должны получить этот путь, потому что мы не можем делать обновления легко все время, потому что некоторые обновления нуждаются в ручной помощи (изменения API в нашей системе sciprt и т. Д.). – BendEg