0

Windows アプリケーションがあり、失敗した場合、失敗後に最初に実行するときにデフォルトで「回復モード」に設定したいと考えています。

エラーにフラグを立てて、ユーザーが回復するためにできるさまざまなことに問題はありません。頭痛の種になっているのは、回復モードユーティリティを実際に起動することです。私にはいくつかのアイデアがありましたが、他の誰かがより良い方法に出くわすことを望んでいました.

1) メイン アプリが読み込まれると、最初に行うことは、以前のエラーをチェックしてから、回復モード ユーティリティを起動する場合です。

これに関する問題は、アプリに何か問題がある場合 (可能性が高い)、アプリがまったく起動しないことです。

2) メイン アプリの代わりに、以前のエラーをチェックするユーティリティをユーザーに起動させてから、メイン アプリを起動するか、回復モードに入ります。

これにより、最初のアイデアの問題は解決されますが、ターゲット マシンが非常にロックされており、展開の問題が発生する可能性があります。

回復モードを実装するための他の戦略はありますか?

ありがとう

4

2 に答える 2

0

次のようにいくつかの同様の状況を解決しました:

  • 「リカバリモードユーティリティ」を常にユーザーが起動するものにします
  • 「リカバリモードユーティリティ」は、リカバリを実行するかどうかをチェックします(実行する場合)。
  • リカバリが不要な場合、またはリカバリが正常に完了した場合、ユーティリティは実際のアプリを起動します

.NETを使用すると、両方を1つのEXEに入れることもできます...たとえば、ILMerge(無料のユーティリティ)を使用するか、実際のアプリを「埋め込み可能なリソース」として埋め込むか、商用ツールを使用します...

このように、ユーザーにとっては違いはありません...そして組み込みEXEはメモリから開始できるので(ファイルシステムに抽出する必要はありません)、ユーザーにとっては、リカバリが本当に必要になるまで違いはありません。 。

メモリから2番目のEXEを埋め込む方法や開始する方法についてのヒントが必要な場合は、お知らせください。現在、リンクはありませんが、検索できます。

于 2011-09-14T21:07:35.287 に答える
0

問題は、アプリが失敗した場合、アプリは失敗したことと失敗した理由を記録できるかということです。

したがって、起動時にアプリ開始イベントを記録し、シャットダウン時にアプリ終了イベントを記録します。その後、起動時に閉じられたイベントが見つからない場合、アプリは自動的に回復モードに入る可能性があります。

メインアプリを直接起動しますが、起動時にアプリがクラッシュしないように、初期化の方法に細心の注意を払っています。

于 2011-09-14T20:52:51.817 に答える