Управление версиями приложения C # - PullRequest
0 голосов
/ 02 июля 2011

У меня есть приложение C # с соответствующей программой установки.Он считывает данные запуска из реестра и сохраняет информацию в папке «Environment.SpecialFolder.ApplicationData» \ myapp.

Мой вопрос: если я внесу различные изменения в код, включающий новые ключи реестра, где я долженотразите это в новой версии, поэтому при повторном запуске установки:

  • Сохраняет текущие ключи / значения реестра
  • Добавляет новый ключ / значение в реестр
  • Оставляет «Данные приложения» нетронутыми

Кандидатами являются:

  • Информация о сборке
  • Версия файла

Если естьдругие, пожалуйста, дайте мне знать.

Спасибо

1 Ответ

0 голосов
/ 02 июля 2011

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

Раствор А)

Чтобы избежать конфликтов версий, вы можете запомнить дополнительный номер версии для конфигурации. Например: в версиях программы 1.0 и 2.0 используется набор конфигурации 1, а в версии 3.0 - набор конфигурации 2, поскольку существуют устаревшие / новые параметры. Просто создайте вложенный ключ в дереве реестра для каждого набора конфигурации. «Данные приложения» могут также включать подпапку с отдельными наборами конфигурации. Основным преимуществом является то, что пользователь может без проблем понизить рейтинг. Новые версии могут импортировать старые значения из более старой конфигурации в качестве значений по умолчанию.

Раствор Б)

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

...