Обновление настроек ничего не делает - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение C #, которое использует несколько пользовательских настроек для хранения своих данных. Когда я увеличиваю номер версии своего приложения, эти настройки теряются и возвращаются к значениям по умолчанию.

Вот почему я реализовал следующий код

if (Settings.Default.UpgradeRequired)
{
    Settings.Default.Upgrade();
    Settings.Default.UpgradeRequired = false;
    Settings.Default.Save();
}

как предложено здесь .

Проблема в том, что вызов Upgrade () ничего не делает. Он не выдает исключение, но и не загружает ни одну из старых настроек. Каждый параметр по-прежнему имеет значение по умолчанию. Также моя новая версия приложения хранит свои настройки в новой папке, прямо рядом со старой папкой настроек.

Я ошибаюсь? ; -)

PS: я проверил, что старый набор настроек хранится на диске с приемлемыми значениями. Так что определенно должно быть что-то, с чем нужно работать для Upgrade ().

1 Ответ

0 голосов
/ 04 сентября 2018

Кажется, я нашел решение. Поскольку моя сборка не была строго названа / подписана, каждый раз, когда я обновлял свое приложение, генерировался новый хэш. При этом старые настройки не были найдены и обновление не сработало.

Чтобы это исправить, я подписал сборку с помощью файла .snk. Таким образом, хэш теперь остается фиксированным, и обновление работает.

...