我有一个使用cryptlex(cryptlex.com)提供的产品激活系统的简单应用程序。
程序在我的计算机上正常运行,但是当我尝试在另一台机器上运行该程序时,它会返回此错误:
我已经确定dll在可执行文件夹中,一切看起来都还可以。
当我删除cryptlex的所有部分时,程序在任何机器上都能正常工作(x86-x64)
我使用了dependencycywalker来检查错误,并在使用cryptlex的可执行文件中找到了这两个:
Windows 7 64位, .NET版本:4.0
答案 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
以后。