Asp.Net C#的DllImport问题

我想在我的网站项目中导入DLL文件。 我在文件夹C: DLLDir中有dll文件“my.dll”,我正在使用代码:

[DllImport("C:DLLDirmy.dll", EntryPoint = "Out32")]

这工作正常。 但我想使用相对路径(网站根路径)。 我试图把“my.dll”放在“bin”或根文件夹中,并使用下面的代码:

   [DllImport("my.dll", EntryPoint = "Out32")]

但我得到的错误:无法加载DLL'my.dll':无法找到指定的模块。 (来自HRESULT的异常:0x8007007E)

有任何想法吗?


我想你可能想首先查看下面的SO问题(因为它与你的案例有关):

DllImport无法找到DLL,即使它在PATH中

正如其他人所建议的,检查PATH环境变量以确保C:DLLDir在那里。 你可以阅读更多关于如何在这里配置你的环境变量。

看看这个MSDN论坛帖子(好像有一个依赖关系的问题)。

如果它是一个你正在导入的COM DLL,那么它可能还需要首先在目标机器上注册(尽管我不确定是否需要这样做)。 在这里阅读更多。


要么你没有将my.dll复制到它应该加载的Bin文件夹中。 使用进程资源管理器(http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)将显示它试图从哪里加载该文件。

编辑:感谢volpav提醒它是非托管DLL - 忽略manged部分......装配有一些其他的依赖关系。 请查看http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57120.aspx,详细介绍此类故障的调查情况(有关更多链接的信息,请搜索“assembly load fussion log”)。


转到“ Properties/Build选项卡,然后将“平台目标”设置为x86

链接地址: http://www.djcxy.com/p/44443.html

上一篇: Asp.Net C# DllImport problem

下一篇: SQL Compact Problem After Installing on Vista Client