i在包含c dll的C#中开发应用程序。我使用dllimport导入DLL。我的应用程序在我的系统中正常工作。但是,当我从不同系统测试应用程序时,它将投掷
"无法加载DLL异常"
,在捕获块中它将显示错误
"找不到dll"
我还使用
打印路径System.IO.Path.GetFullPath("abc.dll")
,我将DLL放在返回路径中。现在是什么解决方案?因此我可以从不同的系统运行应用程序。谢谢Inadvance。
在下面的解决方案下从-https://forums.asp.net/t/939729.aspx?unable to load load dlload fol foo foo dlthe the specified module module 可以 不 be 找到 异常 来自 hresult 0x8007007e
您需要找出您的应用程序(直接或间接)引用了哪些托管DLL,本机DLL和LIB文件。
对于托管DLL,请确保它们在Web的bin文件夹中。
对于本机dll和.lib文件,请查看这些.dll和.lib文件是否在路径中。如果没有,您可以将它们复制到那里;或者,您可以将它们放入文件夹中,然后将该文件夹添加到路径中。然后重新启动VS和IIS(命令" IisReset")以确保拾取设置。
在该解决方案中,他使用以下样品解决方案重现了此错误
-
Web1参考托管的C 项目说" McPP1.dll"。该项目进一步引用了两个不受管理的C 项目,其中输出为" lib1.lib"one_answers" lib2.lib"
-
如果我将所有这些文件复制到Web的bin文件夹中,我会得到"未找到错误的模块"。
-
i创建一个文件夹说" C: lib",然后将" lib1.lib"one_answers" lib2.lib"复制到其中,然后将此文件夹添加到路径中。我重新启动VS,还可以运行" IISRESET",因为我有一个IIS Web
-
打开vs并请求页面,现在起作用
可能是您应该检查project properties-> linker->输入或其他包含C DLL路径的库目录。