0

我有一个 Windows 应用程序,如果它失败了,我想默认为“恢复模式”,它在失败后第一次运行。

我可以标记错误以及用户可以执行的不同操作来恢复,但恢复模式实用程序的实际启动让我很头疼。我有几个想法,但我希望其他人可能会遇到更好的方法。

1)当主应用程序加载它做的第一件事时,如果检查以前的错误,然后启动恢复模式实用程序。

这样做的问题是,如果应用程序有任何问题(很可能),那么它根本不会启动。

2)让用户启动一个实用程序来检查以前的错误,而不是主应用程序,然后启动主应用程序或进入恢复模式。

这解决了第一个想法的问题,但是目标机器非常锁定并且可能存在部署问题。

还有其他实现恢复模式的策略吗?

谢谢

4

2 回答 2

0

问题是,如果应用程序失败,应用程序是否仍然能够记录它失败以及失败的原因?

所以我会在启动时记录一个应用程序启动事件,在关闭时记录一个应用程序关闭事件。然后,如果应用程序在启动时没有找到关闭的事件,它可以自动进入恢复模式。

我会直接启动主应用程序,但要非常小心初始化事物的方式,以免应用程序在启动时崩溃。

于 2011-09-14T20:52:51.817 回答
0

我们解决了一些类似的情况如下:

  • 使“恢复模式实用程序”始终由用户启动
  • “恢复模式实用程序”检查是否要进行任何恢复(如果是的话)
  • 当不需要恢复或恢复成功完成时,实用程序会启动真正的应用程序

使用 .NET,您甚至可以将两者都放入一个 EXE... 例如使用 ILMerge(免费实用程序)或通过将真实应用程序嵌入为“可嵌入资源”或通过某些商业工具...

这种方式对用户来说没有区别......并且嵌入式EXE可以从内存启动(无需将其提取到文件系统),因此对于用户来说,在真正需要恢复之前没有任何区别...... .

如果需要一些关于如何嵌入和/或从内存中启动第二个 EXE 的提示,请告诉我 - 我现在手头没有链接,但可以查找它们。

于 2011-09-14T21:07:35.287 回答