Windows runtime Can';无法加载本机DLL

Windows runtime Can';无法加载本机DLL,windows-runtime,windows-phone-8,Windows Runtime,Windows Phone 8,这是我的后续报道 Windows Phone 8 C#项目(MyApp),从WP7.1迁移而来。我在解决方案中添加了一个本机Windows运行时组件库(AppLib),创建了一个引用。其中有一个公共密封的ref类(MyClass)。在C#code(在主XAML页面的onload中)中有一个对它的引用。整个过程都在构建——这意味着组件的元数据正在生成 当我尝试在emulator上运行时,项目失败,出现异常或键入BadImageFormatException,并显示以下消息: 试图加载格式不正确的程

这是我的后续报道

Windows Phone 8 C#项目(MyApp),从WP7.1迁移而来。我在解决方案中添加了一个本机Windows运行时组件库(AppLib),创建了一个引用。其中有一个公共密封的ref类(MyClass)。在C#code(在主XAML页面的
onload
中)中有一个对它的引用。整个过程都在构建——这意味着组件的元数据正在生成

当我尝试在emulator上运行时,项目失败,出现异常或键入
BadImageFormatException
,并显示以下消息:

试图加载格式不正确的程序。(HRESULT的异常:0x8007000B)

当您尝试在.NET中混合CPU类型时,通常会弹出错误

主动平台是“混合平台”。在Configuration Manager中,它被配置为为为“x86”构建
MyApp
,为“Win32”构建
AppLib
。在运行良好的新生成项目中,配置是相同的

问题-该配置有什么问题?我需要检查什么

<>编辑:我在解决方案中添加了第二个空白的C++库-<代码> TestLIB < /代码>。这一个按预期加载和工作


EDIT2:排除了内置AppLib中的所有内容-它可以工作。现在我将一行一行地添加,看看是哪一行导致了问题…

在大多数情况下,不应该为ARM构建Windows Phone库吗?您是否有机会观看上周会议的“”部分?这可能包括一些答案。

完全是我的错。当我更改AppLib的名称空间时(参见链接的问题),我在
MyApp
名称空间的库中留下了一个小声明


这个错误仍然具有误导性。我想删除这个问题,但由于错误消息肯定会让某人使用build CPU类型等进行白费力气的追逐,所以让它保留下来。

这是Windows Phone WinRT组件吗?库的项目类型是“Windows Phone Runtime component”。“常规”下的属性页上写着“WindowsPhone8.0(v110)”。WP8模拟器是x86,而不是ARM。还有另一个C#/C++解决方案可以使用相同的配置(Win32和x86)工作。可能本机dll引用了不同格式的库?除了在项目创建时存在的库外,我没有向库添加任何引用。不过,我确实添加了一些来源。但他们指的只是香草RTL。