私はネイティブのC++アプリケーションを持っています(C ++だけの派手な.Netのものはありません)。ただし、混合モードラッパーdllファイルを介していくつかのオプションの.Netアセンブリを使用します。これらのdllは、遅延ロードを使用してロードされます。混合モードラッパーを使用する場合、ロードするには完全に信頼できる必要があります。したがって、アプリケーションがdllを使用しようとすると、dllが存在しない場合、または信頼されていない場合、すべてがクラッシュして厄介なエラーメッセージが表示されます。
しかし、私の場合、私のメインアプリケーションが関係している限り、これらのdllファイルがなくても動作します。したがって、これらのdllをロードできるかどうかを確認する方法が必要です(ファイルはそこにあり、信頼されています)。これを行うために、try catchブロック内のdll関数の1つにダミー呼び出しを入れて、例外をキャッチしようとしましたが、それでも「modulenotfound」例外でクラッシュします。
また、処理されていない例外フィルターをカスタムフィルターに置き換えようとしましたが、それでもうまくいきませんでした。
また、LoadLibraryメソッドを使用して、最初にdllをロードし、戻り値を確認しようとしました。ただし、その関数は、信頼されていない場合でもDllをロードしますが、メソッド呼び出しを実行しようとするとクラッシュします。
これは未解決の問題だとは思いません。実際にロードしようとせずにdllを使用できるかどうかを確認して、クラッシュするのはどれほど難しいでしょうか。何か案は?