.NET WPF,从.NET 4升级到4.5.2,用户设置中断

时间:2016-01-25 16:27:25

标签: .net wpf settings upgrade

我刚刚将我的WPF应用程序从.NET 4升级到.NET 4.5.2。一切(到目前为止)似乎过渡得很好,只有一个例外。

我有一个设置文件,一旦我从旧版本的应用程序(运行.NET 4)升级到新版本(运行.NET 4.5.2),就拒绝保存更改。我无法弄清楚是什么导致它破裂。我相信更多细节会有所帮助,但我甚至不确定这里要包含哪些内容才能提供帮助。

任何帮助都将不胜感激。

编辑:通过“就地”升级,我的意思是自动升级,我启动旧应用程序,它与服务器通信并在启动时升级应用程序。

我刚刚意识到,如果我在“就地”升级后关闭应用程序,并重新启动它,那么用户设置继续正常工作。这只是升级后的第一次运行,他们无法保存/更改。

1 个答案:

答案 0 :(得分:0)

我没有找到发生这种情况的原因,只是它发生了。由于我发现它在升级后第一次运行时才破坏了设置,因此我决定在应用程序升级时强制重启。

我只找到一种方法来重启正常工作的clickonce应用程序。请参阅How do I restart a WPF application?

要检查是否发生升级,在我的App.xaml.cs中检查IsNetworkDeployed,以确保CurrentDeployment不为null,然后检查一旦有人登录到应用程序时设置的用户设置。用户设置检查确保全新安装(与升级相反)不会触发重启。

private bool ApplicationUpdated()
{
    return ApplicationDeployment.IsNetworkDeployed && ApplicationDeployment.CurrentDeployment.IsFirstRun && userSettingsService.LastOnline != default(DateTime);
}