1

WinRT アプリで、デバッガーの種類を(マネージドから)混合に切り替えると、アプリケーションの起動に失敗します。デバッガーを一時停止すると、実行が次の場所にあることが示されます。

static void Main(string[] args)
 {
     global::Windows.UI.Xaml.Application.Start((p) => new App());
 }

出力ウィンドウには、EETypeLoadExceptions がさまざまなメモリ位置として継続的に表示されます。

ApplicationName.exe の 0x757E4B32 での初回例外: Microsoft C++ 例外: メモリ位置 0x0BF7D134 での EETypeLoadException。

CLR 例外は次のようです。

CLR:(C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll) Rejecting native image because native image dependency C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll had a different identity than expected

SOS Debugging Extension (SOS.dll)のネイティブ デバッガーを使用する必要があります。

新しい空のアプリを作成し、アプリと同じ依存関係を追加すると、問題が発生しないため、アプリに固有のものです。

問題が何であるか、またはさらにトラブルシューティングする方法についてのアイデアはありますか? WinRT アプリで SOS デバッグ拡張機能 (SOS.dll) を使用した経験のある人はいますか?

4

1 に答える 1

1

ネイティブ COM オブジェクトを呼び出すマネージ アプリケーションがあり、それがいくつかのマネージ COM インスタンスをコールバックしました。ネイティブ COM がマネージ COM オブジェクトをコールバックしているある時点で、EETypeLoadExceptionがスローされました。

同じ名前(Common.dll)の異なるプロジェクトにいくつかのアセンブリがあることがわかりました。すべてのアセンブリが署名されていないため、.NET ランタイムは同じ名前の 2 つの異なるアセンブリを読み込むことができず、EETypeLoadExceptionを通じて問題を報告していました。

診断がもっと詳細であればよかったのですが、少なくとも私の場合は解決されました。

于 2013-09-26T22:52:52.210 に答える