Cle*_*leo 5 c# settings upgrade
我有一个使用内置设置功能的 WPF 应用程序。当我发布应用程序的新版本时,我会增加程序集版本并在应用程序启动时执行以下代码:
if (Settings.Default.IsSettingsUpgradeRequired) //this defaults to true when a new version of this software has been released
{
Settings.Default.Upgrade(); //upgrade the settings to the newer version
Settings.Default.Reload();
Settings.Default.IsSettingsUpgradeRequired = false;
Settings.Default.LastSettingsUpdate = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)
问题是以前的设置没有保留。相反,每次出现新版本时,都会在 \AppData\Local\ 下创建一个新文件夹。因此,使用默认设置而不是以前版本的设置。我知道,在正常情况下,应该有一个文件夹,其中包含许多以应用程序版本为名称的子文件夹。相反,我有许多文件夹,每个文件夹只包含一个以应用程序版本为名称的文件夹。Local\ 中的文件夹结构如下所示:
那么如何阻止系统创建如此多的文件夹并使其每个应用程序仅使用一个文件夹,以便我可以正确升级我的设置?
编辑:我今天注意到的另一件事是,如果我更改应用程序文件夹的位置(假设将其从桌面移动到 C:\myApp),应用程序在首次启动时会创建一个新的设置文件夹。为什么系统不能将其识别为同一个应用程序?
我终于让它发挥作用了。我不知道所描述的行为的原因,但以下两件事之一修复了它: