我正在尝试将 32 位 Oracle 即时客户端安装到几台 Windows 7 PC 上。此版本是客户软件所需的版本。我已使用相同的安装程序成功将其安装在大约十几台 PC 上,但有两台机器拒绝注册 DLL。这两台 PC 的品牌和型号不同。我过去能够在这些型号上安装此软件。这是安装程序抛出的错误:
文件将复制到上面引用的位置。如果我选择忽略错误并稍后手动注册,则会出现以下错误:
无论我使用的是 32 位 (syswow64) 还是 64 位版本的 regsvr32,都会返回此错误。命令提示符以管理员身份运行,我登录 PC 的 ID 是管理员。我尝试将文件复制到 syswow64 文件夹中,但出现相同的错误。此安装程序在其他 PC 上也有效。
使问题进一步复杂化的是,两台电脑中的一台也无法注册来自不同 32 位安装程序的 OCX 文件:
两台电脑都比较新,安装了标准软件。我们使用 MS Forefront 来保证安全,但禁用它并没有改变行为。我遗漏了什么?
答案1
您收到的错误代码代表ERROR_MOD_NOT_FOUND
您的系统缺少这两个程序所依赖的某个依赖 dll。
我经常使用的一个查找此类问题的工具是依赖性遍历器,它分析 dll 或 ocx 并告诉您它所依赖的其他 dll。
如果无法通过静态分析找到它,则需要通过动态分析和“分析”程序来完成。我只使用过 exe,所以我不确定您将如何运行 dll 进行分析,也许您需要加载regsvr32
依赖项遍历器并使用参数启动它以加载您的 dll,它可能会通过这种方式获取它。
一旦您找出丢失的 dll 并将其重新添加到系统中,一切都应该正常工作。
答案2
你可以直接下载 64 位的客户