如何从Metro调用/调用本机dll?

vid*_*ige 6 .net pinvoke native windows-8 windows-runtime

我有一个由两部分组成的库 - 一个.net程序集,P/Invokes到本地第三方dll.在桌面模式下,这很好用:但是,当从Metro风格的应用程序引用程序集并运行它时,它会System.DllNotFoundExceptionP/Invoke上抛出一个抱怨"无法加载DLL'库':无法找到指定的模块. "

本机dll不执行任何特殊操作,但只创建到服务器的外部TCP/IP连接.系统无法知道这一点,而是原生dll可以做任何事情.这就是我怀疑可能无法做到这一点的原因.

有关Metro风格的应用程序在msdn上提到了一些dll搜索顺序,暗示可以加载本机dll吗?

另外我在msdn上发现了这个关于加载"库"的链接,并在清单文件中提到了PackageDependency,但对我来说,仍然不清楚如何以可以P/Invoke它的方式将一个本机dll添加到包中.

Kat*_*ory 0

将其添加到您的项目中(右键单击项目,添加,现有项目。)检查该项目的属性中,内容是否设置为 True(默认情况下为 false)。