Параметры не переносятся, если приложение .NET установлено в другую папку. - PullRequest
0 голосов
/ 18 января 2019

В моем приложении WPF / MVVM C # используется файл настроек пользователя по умолчанию, предоставленный .NET.

Когда я создаю новую версию приложения и отправляю ее пользователю, я проверяю, нужно ли перенастроить настройки, используя это:

   bool UpgradeUserSettings()
    {
        if (Settings.Default.UpgradeRequired)
        {
            Settings.Default.Upgrade();
            Settings.Default.UpgradeRequired = false;
            Settings.Default.AppUpgradeOnLastRun = true;
            Settings.Default.Save();
            MessageBox.Show("The application has been upgraded from a previous version. You will need to restart the application.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            return true;
        }
        return false;
    }

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

Моя проблема заключается в том, что пользователь открывает файл .exe нового приложения из другого места, в котором он первоначально выполнил старое приложение. Или даже если приложение вообще не обновляется, но пользователь решает переместить его из одной папки в другую, .NET, похоже, просто предполагает, что приложение является новым приложением и оно забывает более старые настройки, это похоже на .NET создает отдельные настройки в зависимости от того, в какой папке у пользователя есть приложение.

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

Есть ли способ гарантировать, что .NET автоматически создаст только один набор настроек независимо от местоположения? (то есть .NET должен знать, что мое приложение будет таким же, если я переместу его в другую папку)

...