将 Assembly(File)Version 从 1.0.0.0 更改为 2.0.0.0 后,设置会保存到新文件夹中,但会从旧文件夹中加载

After changing Assembly(File)Version from 1.0.0.0 to 2.0.0.0, settings get saved to a new folder, but loaded from the old one

所以在尝试了很多在线解决方案并询问了同事之后,我终于找到了我的 Settings.settings 无法保护我在程序中配置的设置的原因:

当我将 AssemblyInfo.cs 中的 AssemblyVersionAssemblyFileVersion 从 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()) .

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

您应该在调用 Upgrade() 时设置的 user.config 中添加一个标志。