【发布时间】:2017-12-24 21:48:40
【问题描述】:
我了解到我可以使用以下代码保留以前版本的用户设置:
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
但是,如果我更改设置的漫游属性,这似乎不起作用。当我将设置从漫游更改为本地或反之亦然时,有什么方法可以让设置值结转而不重置?
编辑:我研究了一种使用 GetPreviousVersion() 方法将漫游设置升级到本地设置的可能方法,但它不起作用,因为如果当前设置不是之前的设置版本正在漫游,则根本不返回以前的版本。
复制:
- 进行名为 MySetting 的设置。
- 将 MySetting 的 Roaming 属性更改为
true。 - 确保 MySetting 的范围是
User。 -
运行以下代码:
Console.WriteLine(Settings.Default.GetPreviousVersion("MySetting")); Settings.Default.MySetting = "Not the default value."; Settings.Default.Save(); - 增加程序集版本。
- 再次运行代码,注意到输出了新值。
- 将 MySetting 的 Roaming 属性更改为
false。 - 再次增加程序集版本。
- 再次运行代码,注意输出的是默认值。
【问题讨论】:
标签: c# visual-studio upgrade settings roaming