无法加载本机DLL

时间:2012-11-06 15:01:14

标签: windows-runtime windows-phone-8

这是this的后续行动。

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

当我尝试在模拟器上运行时,项目因异常而失败或键入BadImageFormatException并显示以下消息:

  

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

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

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

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

编辑:我在解决方案中添加了第二个空白C ++库 - TestLib。这个加载并按预期工作。

EDIT2:从AppLib中的build中排除了所有内容 - 它有效。现在我将逐个添加行,看看哪一行导致了问题......

2 个答案:

答案 0 :(得分:1)

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

该错误仍然具有误导性。我会删除这个问题,但是因为错误信息肯定会发送一个带有构建CPU类型和诸如此类的疯狂追逐的人,所以请保留它。

答案 1 :(得分:0)

在大多数情况下,不应该为ARM构建Windows Phone库吗?您是否有机会观看上周Windows Phone 8: Using C++ in your Applications会议的“//Build/”会话?这可能包括一些答案。