-1

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

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

图片:错误

我已经确保 dll 位于可执行文件夹中,并且一切正常。

当我删除 cryptlex 的所有部分时,该程序可以在任何机器上完美运行(x86-x64)

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

错误

Windows 7 64 位,.NET 版本:4.0

4

3 回答 3

0

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

于 2016-11-22T16:30:17.580 回答
0

异常应该有关于没有找到特别是什么 DLL 的详细信息 - 也许仔细看看?

GPSVC 和 IESHIMS 缺失应该不是问题;如沙漏所示,无论如何它们都是延迟依赖项。

于 2016-11-22T16:30:52.970 回答
0

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

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

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

于 2016-11-22T16:38:34.243 回答