リリースされたアプリケーションのいくつかのミニダンプを調査しています。これらのクラッシュをローカルで再現することはできませんが、多数のレポートで、読み込まれた dll のリストに通常と .ni の両方が含まれていることに気付きました。一部の WPF dll のバージョン。
VS 2010 の「モジュール」ペインから、たとえば、PresentationCore (ここでフォーマット)
PresentationCore.dll C:\Windows...\PresentationCore.dll - 読み込まれたシンボル。C:\Users...\PresentationCore.pdb
PresentationCore.ni.dll *C:\Windows...\PresentationCore.ni.dll - 一致するバイナリが見つかりません。PresentationFramework.Aero.dll *C:\Windows...\PresentationFramework.Aero.dll - 一致するバイナリが見つかりません PresentationFramework.Aero.ni.dll *C:...\NativeImages...\PresentationFramework.Aero.ni.dll - 一致するバイナリが見つかりません。
基本的に、NativeImage と JIT バージョンの両方をロードしているように見えます。これは可能ですか?
リリースされた製品のロードをローカル マシンで確認したところ、Visual Studio はモジュール ペインにロードされた 1 つのバージョンのみを一覧表示します。さらに、Fusion は NativeImage バージョンのロード時にエラーを報告しません。私が想定しているのは、通常の警告です。
WRN: ネイティブ イメージは LoadFrom コンテキストではプローブされません。ネイティブ イメージは、Assembly.Load() のように、既定の読み込みコンテキストでのみプローブされます。
私の知る限り、これらのバイナリを参照するために LoadFrom を使用していないので...
コールスタックに NativeImage と通常の Dll が混在している理由はありますか? それは正常ですか?これが問題を引き起こしている可能性があるかどうか、また、これを防ぐ方法をお勧めしますか?