我有一个由两部分组成的库 - 一个.net程序集P/Invokes到本地第三方dll。在桌面模式下,这很好用:但是,当从Metro风格的应用程序引用程序集并运行它时,它会在P/Invoke上抛出System.DllNotFoundException
抱怨“无法加载DLL'库':找不到指定的模块。“
本机dll不做任何特殊操作,但只创建到服务器的外出TCP / IP连接。系统无法知道这一点,而是原生dll可以做任何事情。这就是我怀疑可能无法做到这一点的原因。
关于Metro风格的应用程序msdn提到了一些dll搜索顺序,暗示可以加载本机dll吗?
另外我发现这个link on msdn谈论加载“库”并提到清单文件中的PackageDependency,但对我来说仍然不清楚如何以一种方式向包中添加本机dll可以P/Invoke 。
答案 0 :(得分:0)
将其添加到项目中(右键单击项目,添加,现有项目。)检查该项目的属性中,Content设置为True(默认情况下为false)。构建。
答案 1 :(得分:0)
这可能是设计上的。您的问题可能是由LoadLibrary返回错误代码126的错误引起的。 如果您的应用程序以桌面模式运行,则应针对您的应用程序定位桌面模式您也可以使用早期版本的Windows。