.NET App安装在其他文件夹中时,设置不会迁移

时间:2019-01-18 16:32:11

标签: c# wpf settings .net-4.7.2

我的WPF / MVVM C#应用程序使用.NET提供的默认用户设置文件。

当我创建新版本的App并将其发送给用户时,我会使用以下方法测试设置是否需要迁移:

   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移到另一个文件夹,.NET应该知道我的App是相同的)

0 个答案:

没有答案