将程序集(文件)版本从1.0.0.0更改为2.0.0.0后,设置将保存到新文件夹,但从旧文件夹加载

时间:2016-08-23 13:31:46

标签: c# settings .net-assembly

因此,经过大量时间尝试在线解决方案并询问同事后,我终于找到了我的Settings.settings无法保护我在程序中配置的设置的原因:

当我将AssemblyVersion中的AssemblyFileVersionAssemblyInfo.cs从1.0.0.0更改为2.0.0.0时(因为它是程序的秒版本 - 我在MVVM中重写了它从多年前制作的旧版本开始,它创建了一个新文件夹,将设置保存到 - ... \ AppData \ local \ MyProgram \ MyProgram- {UID} \ 2.0.0.0。

问题是,它仍然加载\ 1.0.0.0文件夹中的设置。

如何让它完全承诺成为2.0.0.0?这会在我的课程中花费多长时间的心理学课程,还是我能以某种方式直截了当?我真的希望我的程序最终成长为2.0.0.0。

修改:更多信息

AssemblyInfo.cs现在最后一行:

[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]

升级后,第二个文件夹被创建,设置将保存到其user.settings,但仍然从1.0.0.0/user.settings加载(Settings.Upgrade())。

Folders after AssemblyVersion upgrade

1 个答案:

答案 0 :(得分:1)

启动新版本的应用程序时,只需要调用Settings.Upgrade()一次,否则您将不断覆盖旧版本的设置。

您应该在致电user.config时在Upgrade()中添加一个标记。