6

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

本机 dll 没有做任何特别的事情,只是创建到服务器的传出 TCP/IP 连接。系统无法知道这一点,而是本机 dll 可以做任何事情。这就是为什么我怀疑它可能无法做到这一点。

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

我还在 msdn 上找到了这个链接,讨论加载“库”并在清单文件中提到 PackageDependency,但对我来说,仍然不清楚如何以可以P/Invoke的方式将本机 dll 添加到包中

4

2 回答 2

0

这可能是设计使然。您的问题可能是由LoadLibrary返回错误代码 126 的错误引起的。如果您的应用程序在桌面模式下运行,您应该为您的应用程序定位桌面模式。您也可以使用早期版本的 Windows。

于 2014-07-02T18:13:20.660 回答
0

将其添加到您的项目中(右键单击项目,添加,现有项目。)检查该项目的属性中,内容设置为真(默认为假。)构建。

于 2011-10-18T21:08:23.713 回答