我有一个Windows应用程序,如果它失败了,我想默认为“恢复模式”,第一次失败后运行。
我很好地标记了错误以及用户可以执行的不同恢复操作,这是实际启动的恢复模式实用程序让我头疼。我有几个想法,但我希望其他人可能会遇到更好的方法。
1)当主应用程序加载它执行的第一件事时,如果检查先前的错误,然后启动恢复模式实用程序。
这个问题是,如果应用程序出现任何问题,那么它很可能无法启动。
2)用户启动的实用程序将检查以前的错误,然后启动主应用程序或进入恢复模式,而不是主应用程序。
这解决了第一个想法的问题,但目标计算机已被锁定,可能存在部署问题。
是否还有其他策略来实施恢复模式?
由于
答案 0 :(得分:0)
问题是,如果应用程序失败,应用程序是否仍然能够记录它失败以及失败的原因?
因此,我会在启动时记录应用启动事件,并在关闭时记录应用关闭事件。然后,如果在启动时没有找到关闭的事件,应用程序可以自动进入恢复模式。
我会直接启动主应用程序,但要非常小心如何初始化,以便应用程序在启动时不会崩溃。
答案 1 :(得分:0)
我们解决了类似的情况如下:
使用.NET,您甚至可以将两者放入一个EXE中...例如使用ILMerge(免费实用程序)或将真实应用程序嵌入“可嵌入资源”或某些商业工具......
这种方式对于用户而言没有区别......并且嵌入式EXE可以从内存启动(无需将其提取到文件系统),因此对于用户来说,它确实没有任何区别,直到恢复真的需要...
如果需要提供有关如何从内存中嵌入和/或启动第二个EXE的一些提示,请告诉我 - 我现在没有手头的链接,但可以查看它们。