Подтвердить что ты не робот

Автоматически "обновлять" пользовательские настройки из предыдущей версии файла app.config?

Каждый раз, когда я скомпилирую свое приложение и изменяю номер версии (у меня есть номер с автоматической добавочной строкой), я теряю настроенные пользователем настройки app.config, так как они хранятся в папке AppData для конкретной версии. По сути, каждый выпуск моего приложения начинается с нуля, насколько позволяют настройки пользователя.

Несмотря на то, что это слабое раздражение при разработке, возникает вопрос, когда я приближаюсь к развертыванию/выпуску - , если я использую app.config для хранения моих пользовательских настроек, будут ли пользовательские настройки настраиваться каждый раз при их установке патч, который изменяет номер версии моего приложения? Если это так, есть ли простой способ "обновить" настройки из предыдущей версии? Я знаю, что использование HKCU в реестре - это еще один вариант, но мне нравится простота пространства имен My.Settings, и я хотел бы остаться с app.config.

Другой вопрос SO спрашивает что-то подобное, хотя ответ кажется не таким ясным. Будет ли настройка моего MSI таким образом, чтобы он запрашивал у пользователя обновления, чтобы сохранить эти настройки на уровне пользователя?

4b9b3361

Ответ 1

Вы просмотрели ApplicationSettingsBase.Upgrade()? Он позволяет обновлять настройки из предыдущей версии, используя следующий вызов:

My.Settings.Upgrade()

Ответ 2

Не знаю, почему, но ни команда обновления, ни предыдущая версия не работают для меня. Что я могу делать неправильно? Мне нужно вызвать команду refresh или что-то еще. Я делаю это при загрузке формы, если это событие приложения?

ОБНОВЛЕНИЕ

Узнал, почему, похоже, он не работает, когда вы используете 4-значный номер версии. Я использовал год 2012 как основной номер версии. Я изменил это на 12, и он работает как шарм, хотя он не соответствует тысячелетнему. Тем не менее я получил 88 лет, прежде чем мне нужно начать беспокоиться об этом!

Ответ 3

Рассматривали ли вы развертывание ClickOnce? В этом разделе подробно описывается . IMO, ClickOnce намного проще как для разработчика, так и для пользователя.