.NET WPF,从 .NET 4 升级到 4.5.2,用户设置中断
.NET WPF, Upgrade from .NET 4 to 4.5.2, User Settings breaks
我最近刚刚将我的 WPF 应用程序从 .NET 4 升级到 .NET 4.5.2。一切(到目前为止)似乎都过渡得很好,只有一个例外。
我有一个设置文件,一旦我从应用程序的旧版本 (运行ning .NET 4) "in place" 升级到新版本 (运行宁.NET 4.5.2)。我不知道是什么导致它破裂。我相信更多详细信息会有所帮助,但我什至不确定在此处包含哪些内容会有帮助。
如有任何帮助,我们将不胜感激。
编辑: 通过 "in place" 升级,我的意思是我启动旧应用程序的自动升级,它与服务器通信并在启动时升级应用程序。
我刚刚意识到,如果我在 "in place" 升级发生后关闭应用程序,然后重新启动它,那么用户设置将继续正常工作。这只是升级后的第一个运行,他们无法save/change。
我没有找到发生这种情况的原因,只是找到了原因。因为我发现它只是在升级后 运行 第一次破坏设置,所以我决定在应用程序升级时强制重启。
我只找到一种方法来重新启动正常工作的 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);
}
我最近刚刚将我的 WPF 应用程序从 .NET 4 升级到 .NET 4.5.2。一切(到目前为止)似乎都过渡得很好,只有一个例外。
我有一个设置文件,一旦我从应用程序的旧版本 (运行ning .NET 4) "in place" 升级到新版本 (运行宁.NET 4.5.2)。我不知道是什么导致它破裂。我相信更多详细信息会有所帮助,但我什至不确定在此处包含哪些内容会有帮助。
如有任何帮助,我们将不胜感激。
编辑: 通过 "in place" 升级,我的意思是我启动旧应用程序的自动升级,它与服务器通信并在启动时升级应用程序。
我刚刚意识到,如果我在 "in place" 升级发生后关闭应用程序,然后重新启动它,那么用户设置将继续正常工作。这只是升级后的第一个运行,他们无法save/change。
我没有找到发生这种情况的原因,只是找到了原因。因为我发现它只是在升级后 运行 第一次破坏设置,所以我决定在应用程序升级时强制重启。
我只找到一种方法来重新启动正常工作的 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);
}