Inv*_*ion 43 .net c# settings.settings
我创建了一个应用程序,它使用settings.settings来存储一些用户特定的设置(scope = User).设置在启动时正确加载,在使用过程中更改并正确保存以供下次启动.这个循环似乎没有问题.
当我更新新版本的程序集和文件版本时,会出现问题.启动时不再加载设置(而是使用默认值).即使启动版本1.2并且生成并保存了新的配置文件(即,您可以重新启动版本1.1并且配置文件将是从该文件保存的配置文件),似乎从版本1.1保存的配置文件将保持不变.版).
因此,设置似乎特定于程序集和/或文件的版本.值得注意的是,在版本1.1和版本1.2之间没有对settings.settings文件或其他任何内容进行任何更改(即我在这些不同版本之间进行的唯一更改是修改版本号).
有没有办法在版本更改后保留这些设置?
spl*_*tne 60
一些澄清:
您必须调用派生类的Upgrade方法ApplicationSettingsBase(通常调用Settings并由Visual Studio为您创建):
Properties.Settings.Default.Upgrade();
Run Code Online (Sandbox Code Playgroud)
何时/何地调用该Upgrade方法?您可以应用一个简单的技巧:将名为UpgradeRequired(example)的用户设置定义为bool(最简单的方法是通过IDE).确保其默认值为true.
在应用程序的开头插入此代码:
if (Properties.Settings.Default.UpgradeRequired)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
Properties.Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)
因此,仅在版本更改后才会调用Upgrade方法,并且只会调用一次(因为您通过设置禁用进一步升级UpgradeRequired = false直到版本更改 - 当属性重新获得默认值时true).
| 归档时间: |
|
| 查看次数: |
19314 次 |
| 最近记录: |