找到C#dll时找不到C ++ dll(并在我的计算机上运行)

时间:2012-11-02 17:23:18

标签: c# c++ windows visual-studio-2010

在干净的计算机上(没有可视化工作室),我将Debug文件夹压缩为其他人(在我的计算机上工作),其他人试图启动该程序,我收到了错误

System.DllNotFoundException:无法加载DLL“HookHandler.dll”:找不到指定的模块。 (HRESULT异常:0x8007007E)

然后我让他安装 http://www.microsoft.com/en-us/download/details.aspx?id=8328

认为这会有所帮助。有什么想法,为什么它没有在他的电脑上找到dll,但在我的电脑上发现它很好?

编辑:我应该注意到HookHandler.dll与exe位于同一个文件夹中。再一次,当我运行exe并且HookHandler在我的文件夹中时,它可以在我的计算机上运行。我用HookHandler将其压缩并将其交给其他人并且它不起作用我验证了HookHandler在他的文件夹中。

对于某些原因,安装visual studio修复了这个问题。所以它必须是HookHandler所依赖的东西所以我需要尝试使用ProcMon工具或者depends.exe来查看HookHandler取决于我的想法。

感谢, 迪安

4 个答案:

答案 0 :(得分:1)

不确定问题是什么,但我建议安装.Net Framework 4并试一试。

以下是下载链接:http://www.microsoft.com/en-us/download/details.aspx?id=17851

答案 1 :(得分:1)

我的猜测是HookHandler.dll不在您的本地项目中,并且VS正从您计算机上的其他位置抓取它。如果这是真的,你应该做的就是:

在项目中使用

(使用VS),查看HookHandler.dll的属性,将“Copy Local”设置为True,重建,重新压缩和重新发送。

我以前遇到过这个问题(但是使用了不同的DLL)并修复了它,希望它对你有用。

答案 2 :(得分:0)

确保DLL位于bin中。属性 - >复制本地 - >总是

你不能指望人们在他们的计算机上有像HookHandler.dll这样的模糊垃圾:p

答案 3 :(得分:0)

好的,这非常奇怪。我们使用Debug配置构建我们的东西并随之提供,因为我们需要所有生产线上的所有行号和所有好东西。该信息值得使用Release版本的任何微小性能改进的好处(而且我们现在的表现远远超过我们现在所需要的。)

那就是说,更换C ++ dll,pdf,ilk等的发布版本修复了这个问题!!!!!所以它与找不到它们无关,而是使用一些visual studio dll与它有关,因为它是在Debug配置中编译的。

所以基本上任何C ++ dll都必须在Release模式下编译,而我们的其他项目现在使用Debug模式进行编译并修复了这个问题。