无法使用混合(托管和本机)调试器调试Win 8应用程序



WinRT应用程序中将调试器类型切换为混合(从托管)时,应用程序无法启动。。暂停调试器显示执行在:

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

输出窗口持续显示不同内存位置的EETypeLoadException:

ApplicationName.exe中0x757E4B32处的首次机会异常:MicrosoftC++异常:内存位置0x0BF7D134处的EETypeLoadException。

看起来CLR异常是:

CLR:(C:WINDOWSMicrosoft.NetassemblyGAC_32mscorlibv4.0_4.0.0.0__b77a5c561934e089mscorlib.dll) Rejecting native image because native image dependency C:WINDOWSMicrosoft.NetassemblyGAC_32mscorlibv4.0_4.0.0.0__b77a5c561934e089mscorlib.dll had a different identity than expected

我需要将本机调试器用于SOS调试扩展(SOS.dll)

当创建一个新的空白应用程序,然后添加与我的应用程序相同的依赖项时,我没有遇到这个问题,所以这是我的应用特定的问题。

关于问题是什么或如何进一步排除故障,有什么想法吗?有人在WinRT应用程序中使用SOS调试扩展插件(SOS.dll)的经验吗?

我有一个托管应用程序调用本机COM对象,这些对象反过来调用一些托管COM实例。在本机COM回调托管COM对象的某个时刻,抛出了EETypeLoadException

事实证明,我在不同的项目中有多个程序集,具有相同的名称(Common.dll)。由于所有程序集都未签名。.NET运行时无法加载两个具有相同名称的不同程序集,并通过EETypeLoadException报告了问题。

我希望诊断更详细,但至少现在我的情况已经解决了。

最新更新