C#System.DllNotFoundException

时间:2016-11-22 16:24:26

标签: c# dllnotfoundexception

我有一个使用cryptlex(cryptlex.com)提供的产品激活系统的简单应用程序。

程序在我的计算机上正常运行,但是当我尝试在另一台机器上运行该程序时,它会返回此错误:

Picture: Error

我已经确定dll在可执行文件夹中,一切看起来都还可以。

当我删除cryptlex的所有部分时,程序在任何机器上都能正常工作(x86-x64)

我使用了dependencycywalker来检查错误,并在使用cryptlex的可执行文件中找到了这两个:

Error

Windows 7 64位, .NET版本:4.0

3 个答案:

答案 0 :(得分:0)

当DLL存在时,你检查了比特率吗? 大多数C#项目默认构建为Any CPU - 如果DLL特定于比特率(即x86或x64),则可能是程序在终端机器(通常为x86)上选择了错误的比特率,但是正确的你的机器(x64)。这通常可以通过构建不同的x86和x64版本来解决;它更加混乱,但只有.NET本身擅长使用Any CPU范例。

答案 1 :(得分:0)

该异常应详细说明未找到特定的DLL - 可能看得更近?

缺少的GPSVC和IESHIMS应该不是问题;正如小时玻璃所示,他们无论如何都会推迟依赖。

答案 2 :(得分:0)

您可以使用Process Monitor记录程序的所有文件活动。为可执行文件设置过滤器。重现错误后,将日志保存为XML文件。

然后运行ProcMon Analyzer(注意:我是它的作者)。它将分析文件并提供未找到的DLL列表。

您也可以手动执行此操作,但请注意,最初可能找不到某些DLL,但稍后在查看%PATH%环境变量等时会找到该工具。该工具将删除所有具有{{{ 1}}首先,但PATH NOT FOUND以后。