1

我很难让一个明智的传统安装程序工作。在该过程快要结束时,安装程​​序会运行一个 vb 脚本并执行以下步骤

  1. cscript - 运行名为 runscriptupdates 的 vbs 文件。
  2. Runscriptupdates.vbs - 调用名为 Remote.dll 的 COM dll
  3. Remote.dll - 调用另一个名为 libmcl.dll 的 dll
  4. 错误消息被抽出

无法插入 xyz.csv 错误 53 找不到文件:libmcl-2.7.0.dll,第 0 行,文件=C:\DATA\CLIENT\xyz.csv

所以结论是cscript/vbs/remote.dll找不到libmcl-2.7.0.dll。我可以通过手动运行脚本来重现安装程序的相同行为,这是我迄今为止尝试过的,但我仍然收到相同的失败消息。

  1. 将 libmcl 复制到 cscript 目录
  2. 将 libmcl 复制到 remote.dll 目录
  3. 将 libmcl 复制到 runscriptupdates.vbs 目录
  4. 我打开了融合日志以查看是否有任何指针,但因为它不是 .NET,所以没有任何用处
  5. 试图用 regsrv 注册 libmcl 但它不能

此时,如果我从命令提示符检查路径,则保存 libmcl 的文件夹不在路径中。但是,如果我通过 myComputer->Advanced->EnvironmentVariables 检查它,则该文件夹位于路径中。

如果我在尝试安装后重新启动机器,然后再次运行安装程序,它就没有问题。我觉得它一定是在安装时没有正确更新路径或类似的东西。有没有办法在添加路径后强制更新?

谢谢,尼尔

4

2 回答 2

0

尝试使用 32 位 cscript.exe 运行它:

> C:\Windows\SysWOW64\cscript.exe runscriptupdates.vbs

有什么区别吗?

于 2012-04-10T20:55:14.823 回答
0

我终于在我发现的另一个问题的帮助下找到了解决方案

是否有从 Windows 的命令提示符刷新环境变量的命令?

我创建了一个 vb 脚本 ResetEnvironmentVariables.vbs 然后创建了一个批处理文件来打包它们。

Runscriptupdates.bat
--------------------------
cscript ResetEnvironmentVariables.vbs
call "%TEMP%\ResetEnvironmentVariables.bat"
cscript Runscriptupdates.vbs %1 %2 %3 ... %n

所以这允许 runscriptupdates 找到 libmcl dll 并重新开始工作!哇!

于 2012-04-11T18:10:59.180 回答