0

在一台干净的计算机(没有 Visual Studio)上,我为其他人(在我的计算机上工作)压缩了 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

4 回答 4

1

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

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

于 2012-11-02T17:31:10.487 回答
1

我的猜测是 HookHandler.dll 不在您的本地项目中,而 VS 正在从您计算机上的其他地方获取它。如果这是真的,那么您所要做的就是:

在您的项目中(使用 VS),查看 HookHandler.dll 的属性,将“复制本地”设置为 True,重新构建、重新压缩并重新发送。

我过去曾遇到过这个问题(但使用了不同的 DLL),现在解决了这个问题,希望它对你有用。

于 2012-11-02T17:36:18.140 回答
0

确保 DLL 在 bin 中。属性 -> 复制本地 -> 始终

你不能指望人们在他们的电脑上会有像 HookHandler.dll 这样晦涩难懂的废话:p

于 2012-11-02T17:39:48.613 回答
0

好吧,这很奇怪。我们使用 Debug 配置构建我们的东西并交付,因为我们需要所有行号和生产中的所有好东西。这些信息值得使用发布版本的任何微小性能改进的好处(加上我们的性能远远超过我们现在需要的方式)。

也就是说,更换 C++ dll、pdf、同类等的 Release 版本解决了这个问题!!!!!!所以它与找不到它们无关,而是使用一些 Visual Studio dll 与它有关,因为它是在调试配置中编译的。

所以基本上任何 C++ dll 都必须在发布模式下编译,而我们的其他项目现在在调试模式下编译,这解决了这个问题。

于 2012-11-08T20:07:54.227 回答