【问题标题】:.NET WPF, Upgrade from .NET 4 to 4.5.2, User Settings breaks.NET WPF,从 .NET 4 升级到 4.5.2,用户设置中断
【发布时间】:2016-05-02 01:06:59
【问题描述】:

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

一旦我从旧版本的应用程序(运行 .NET 4)“就地”升级到新版本(运行 .NET 4.5.2),我有一个设置文件拒绝保存更改。我无法弄清楚是什么导致它破裂。我确信更多详细信息会有所帮助,但我什至不确定在此处包含哪些内容会有所帮助。

任何帮助将不胜感激。

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

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

【问题讨论】:

  • 您可以在开头包含拒绝消息。并描述“到位”的实际含义。

标签: .net wpf settings upgrade


【解决方案1】:

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

我只找到了一种重新启动正常运行的 clickonce 应用程序的方法。见How do I restart a WPF application?

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多