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
。