VBscript无法找到DLL

时间:2012-04-10 14:08:57

标签: dll vbscript installer environment-variables

我有一段时间让一个传统明智的安装程序工作。在流程结束时,安装程​​序会运行vb脚本并执行以下步骤

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

    无法插入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,但它不能
    6. 此时如果我从命令提示符检查路径,则保存libmcl的文件夹不在路径中。但是,如果我通过myComputer-> Advanced-> EnvironmentVariables检查它,则该文件夹位于路径中。

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

      谢谢, 尼尔

2 个答案:

答案 0 :(得分:0)

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

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

有什么不同吗?

答案 1 :(得分:0)

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

Is there a command to refresh environment variables from the command prompt in Windows?

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

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

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