Я добавлю пару этого, я не видел здесь, что влияют для меня:
Хорошо, я нашел ответ, который действительно искал. По сути, вам нужно вызвать LocalFileSettingsProvider.Upgrade. Однако, поскольку я буду развертывать с помощью ClickOnce, он сделает это за вас автоматически.
Q: Хорошо, но как мне узнать, когда вызывать Upgrade?
A: Хороший вопрос. В Clickonce, когда вы устанавливаете новую версию своего приложения, ApplicationSettingsBase обнаружит ее и автоматически обновит настройки для вас в момент загрузки настроек. В случаях, не связанных с Clickonce, автоматическое обновление отсутствует - вам нужно вызвать обновление самостоятельно. Вот одна из идей для определения, когда вызывать Upgrade:
Задайте логическую настройку CallUpgrade и присвойте ей значение по умолчанию true. Когда ваше приложение запускается, вы можете сделать что-то вроде:
if (Properties.Settings.Value.CallUpgrade)
{
Properties.Settings.Value.Upgrade();
Properties.Settings.Value.CallUpgrade = false;
}
Это обеспечит вызов Upgrade () только при первом запуске приложения после развертывания новой версии.
REF: http: // blogs.msdn.com/rprabhu/articles/433979.aspx[12129 visible
Я считаю, что файлы Settings.settings сохраняются на основе текущего номера версии, в основном как «функция», при которой настройки не сохраняются между разными версиями одной и той же программы на машине. Предполагая, что вы автоматически увеличиваете номер версии при компиляции (1.0. * В AssemblyInfo.cs), вы будете сбрасывать свои настройки каждый раз при компиляции новой версии.
Чтобы исправить это, лучше всего будет сериализовать ваш собственный файл настроек в каталог Application Data.
Я думаю, что вы можете установить в свойствах файла (в Visual Studio щелкните правой кнопкой мыши, Свойства) параметр «не копировать» при сборке проекта / запустить. Вероятно, что происходит, когда ваш проект построен, файл настроек копируется в каталог отладочной корзины, перезаписывая файл настроек из предыдущего запуска.
Среди прочего, файл настроек сбрасывается каждый раз при отладке просто потому, что в следующий раз, когда вы отлаживаете, вы сможете протестировать все приложение заново. Если не сбросить настройки, это может привести к необнаруженным ошибкам.