当应用程序在不同系统上运行时,无法加载DLL异常



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")以确保拾取设置。

在该解决方案中,他使用以下样品解决方案重现了此错误

  1. Web1参考托管的C 项目说" McPP1.dll"。该项目进一步引用了两个不受管理的C 项目,其中输出为" lib1.lib"one_answers" lib2.lib"

  2. 如果我将所有这些文件复制到Web的bin文件夹中,我会得到"未找到错误的模块"。

  3. i创建一个文件夹说" C: lib",然后将" lib1.lib"one_answers" lib2.lib"复制到其中,然后将此文件夹添加到路径中。我重新启动VS,还可以运行" IISRESET",因为我有一个IIS Web

  4. 打开vs并请求页面,现在起作用

可能是您应该检查project properties-> linker->输入或其他包含C DLL路径的库目录。

最新更新