不明な .NET (WPF) クラッシュが発生しています。64 ビットのプラットフォーム ターゲットでコンパイルされた私のアプリケーションは、サイレントにクラッシュし (ダイアログなどは表示されません)、ユーザーのコンピューターのサブセットの Windows イベント ビューアーにイベントが記録されます。
私のアプリケーションは、メインの WPF 実行可能ファイルとクラス ライブラリ DLL で構成され、どちらも .NET Framework 4 Client Profile 用にコンパイルされ、両方とも 64 ビットのターゲット プラットフォームでコンパイルされています。
奇妙なことに、Any CPU のターゲット プラットフォームで WPF 実行可能ファイルをコンパイルしても、クラス ライブラリを 64 ビットのターゲットのままにしておくと、アプリケーションが突然正常に起動します。
スタック トレースは次のようになります。
(a30.f0): Access violation - code c0000005 (first/second chance not available)
ntdll!RtlPcToFileHeader+0x97:
00000000`7729ce6b 418b4350 mov eax,dword ptr [r11+50h] ds:00000000`00000050=????????
0:000> k
*** Stack trace for last set context - .thread/.cxr resets it
Child-SP RetAddr Call Site
00000000`004cefd0 000007fe`f1cecf00 ntdll!RtlPcToFileHeader+0x97
00000000`004cf050 000007fe`f1cece5d MSVCR110_CLR0400!__ExceptionPtr::_CopyException+0x8b
00000000`004cf140 000007fe`f1cec978 MSVCR110_CLR0400!__ExceptionPtr::_InitBadAllocException+0x5d
00000000`004cf1a0 000007fe`f1cf519b MSVCR110_CLR0400!IsProcessorFeaturePresent+0x1bfe
00000000`004cf1d0 000007fe`f1ced41f MSVCR110_CLR0400!initterm+0x1f
00000000`004cf200 000007fe`f1ced3bf MSVCR110_CLR0400!cinit+0x3f
00000000`004cf230 00000000`772cb0d8 MSVCR110_CLR0400!CrtEndBoot+0x65
00000000`004cf260 00000000`772b784a ntdll!LdrpRunInitializeRoutines+0x1fe
00000000`004cf430 00000000`772b7b2e ntdll!LdrpLoadDll+0x231
00000000`004cf640 000007fe`fd9b9aa9 ntdll!LdrLoadDll+0x9a
00000000`004cf6b0 000007fe`fc24b05b KERNELBASE!LoadLibraryExW+0x22e
00000000`004cf720 000007fe`fc24aee3 mscoreei!RuntimeDesc::LoadLibrary+0x193
00000000`004cf8a0 000007fe`fc242611 mscoreei!RuntimeDesc::LoadMainRuntimeModule+0x266
00000000`004cf940 000007fe`fc24b2fb mscoreei!RuntimeDesc::EnsureLoaded+0x6a
00000000`004cf9d0 000007fe`fc24b299 mscoreei!RuntimeDesc::GetProcAddressInternal+0x23
00000000`004cfa00 000007fe`fc248974 mscoreei!CLRRuntimeInfoImpl::GetProcAddress+0x61
00000000`004cfa80 000007fe`fc2474c8 mscoreei!GetCorExeMainEntrypoint+0x120
00000000`004cfb40 000007fe`fb685b21 mscoreei!CorExeMain+0x41
00000000`004cfb90 00000000`76bc652d mscoree!CorExeMain_Exported+0x57
00000000`004cfbc0 00000000`772bc521 kernel32!BaseThreadInitThunk+0xd
00000000`004cfbf0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d
これは、アプリケーションが実際にエンドユーザーのコンピューターで実行されることを保証できないことを意味するため、明らかに私にとって大きな問題です。
誰かが似たようなことに遭遇し、それを修正する方法を知っていますか? 私のアプリケーションは 64 ビットの DLL を読み込んでおり、それが 32 ビット モードで実行されていないことを完全に確認したいと考えています。