0

再コンパイルできないサードパーティの実行可能ファイルを使用しています (ベンダーは利用できなくなりました)。元々は .Net 1.1 で書かれていましたが、それ以降のバージョンでも問題なく動作するようです。自分のアプリケーションから Process.Start を使用して起動します (p/invoke CreateProcess も同じ結果で試したので、関係ありません)。

残念ながら、このサードパーティ製アプリは、終了時に未処理の例外をスローするようになりました。Microsoftダイアログボックスには、「v2.0から例外がスローされました...ブロードキャストウィンドウ」のようなタイトルがあり、実行中の.Netのバージョンに関連するバージョン番号が付いています(.exe.configファイルを使用して、別の.Netをターゲットにすることができますバージョン、役に立たない)。

終了時の未処理の例外ダイアログ ボックスは実際の問題を引き起こしませんが、毎回 [OK] をクリックして閉じる必要があるユーザーにとっては厄介です。ソースコードを持っていないアプリでこのダイアログが表示されないようにする方法(おそらく構成ファイルオプション)はありますか? UnhandledException イベントにアクセスできる新しい AppDomain にロードすることを検討しましたが、ダイアログの外観を変更できる兆候はありません。誰かが例外の原因を知っているので、別の方法でこれを修正できますか?

4

3 に答える 3

2

サード パーティ アプリケーションを直接呼び出すラッパー アプリケーションを作成し、 を使用してアプリケーションを起動することができますProcess.Start

次に、ラッパー アプリケーションで例外をトラップして、ユーザーにエラー メッセージが表示されないようにします。

于 2010-03-22T20:39:14.040 に答える
0

次回はソースコードなしで何かを使おうとしないでください:)

回避策は、Chris の提案に従うことです。ラッパー アプリケーションは、そのようなコードを利用できます。

http://blog.jtbworld.com/2007/06/windows-live-writer-spell-checking.html

  1. 古いアプリケーションの実行可能ファイルを見つけます。
  2. ラッパー アプリケーションで作成された AppDomain オブジェクトで実行します。
  3. アプリケーションのハンドルされない例外ハンドラーを、この AppDomain オブジェクトの UnhandledException イベントにバインドします。

http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx

于 2010-03-23T03:21:01.520 に答える
0

難読化されていない場合は、逆コンパイルできますか? これはもちろん違法ですが、会社が実際に倒産した場合、それを追求する人は誰もいません。他に選択肢がない場合は、コードをサポートするのが合理的です。

Reflector は、コードがクラッシュする理由についても手がかりを与える可能性があります。おそらく、何かを実行するか、パラメーターを指定して呼び出して、クラッシュを停止する必要がありますか?

于 2010-03-22T20:39:56.650 に答える