コードをステップ実行すると、フォームのコンストラクター内で、まったく同じフォームで宣言されたメソッドが呼び出されます。メソッドの内部に入る前に、「指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)」というメッセージが含まれるSystem.IO.FileNotFoundExceptionを受け取ります。私が入力しようとしているメンバーメソッドは、アンマネージC++コードを処理するため、安全ではないと宣言されていますが、私が言ったように、とにかくメソッドにステップインすることはできません。
DLL依存関係の問題のように聞こえるので、依存関係ウォーカーを実行しました。依存関係ウォーカーは、SHLWAPI.DLLの下のMPR.DLLの問題のみを示しています。問題のメソッドは、私が呼び出さないWNetRestoreConnectionAです。依存関係ウォーカーFAQこれは問題ではないことを示唆しています http://dependencywalker.com/faq.html 。また、これはWebアプリケーションでも何でもありません。残念ながら私はVS2005で立ち往生。
この問題が発生する理由として考えられるものは何ですか?何が欠けている可能性があるか、どのようにこの問題をデバッグできるかについてのアイデアはありますか?
メソッドで使用されているタイプの1つを見つけられなかったため、.NetランタイムがステップインしようとしているメソッドをJITで実行すると、エラーが発生します。
ステップインできないメソッドは正確には何をし、どのタイプ/メソッドを使用しますか?
依存関係ウォーカーをプロファイリングモードで実行していますか、それとも静的分析だけですか?これには、プロファイリングモードが必要だと思います。しかし、私が信じているより良い解決策があります。
SysInternals ProcMon を試すことができます。これにより、少なくともロードしようとしているファイルを確認でき、そこから問題が何であるかを理解できる場合があります。
私のアドバイスは、それを起動してからロギングをオフにすることです。例外が発生するところまで行き、ロギングを再度有効にし、デバッガーをステップオーバーしてエラーが生成されるようにしてから、再度ロギングを無効にします。これにより、対処するログの量が少なくなります。そうしないと、かなり手に負えないほど速くログが取得される可能性があります。