p我们还在所有目标计算机上安装 vcredist_x86.exe 2005,不是可再分发的,而是像您一样从脚本安装。此代码适用于所有 Windows 操作系统。我们在 1000 多个客户上从来没有遇到过这个问题。我们从 InstallShield 6.0 到 InstallShield 2014 一直使用这个脚本。
我们将 vcredist_x86.exe 放在 Support Files\Language Independent 中。在安装程序执行时,此文件将可从 SUPPORTDIR 获得。
sParams = "/q";
log(" LaunchAppAndWait: " + SUPPORTDIR ^ "vcredist_x86.exe " + sParams);
nResult = LaunchAppAndWait(SUPPORTDIR ^ "vcredist_x86.exe", sParams, LAAW_OPTION_HIDDEN | LAAW_OPTION_WAIT | LAAW_OPTION_SHOW_HOURGLASS);
if (nResult < 0) then
sErrorMessage = FormatMessage(nResult);
log("**ERROR: Could not start vcredist_x86.exe. Reason: " + sErrorMessage);
endif;
我们有自定义 log() 函数。只需忽略对 log() 的调用或将它们更改为 MessageBox 或其他东西。
如果常量不可用:
#define LAAW_OPTION_NOWAIT 0x00000000
#define LAAW_OPTION_WAIT 0x00000001
#define LAAW_OPTION_HIDDEN 0x00000002
#define LAAW_OPTION_MINIMIZED 0x00000004
#define LAAW_OPTION_MAXIMIZED 0x00000008
#define LAAW_OPTION_SET_BATCH_INSTALL 0x00000010
#define LAAW_OPTION_SHOW_HOURGLASS 0x00000020
#define LAAW_OPTION_NO_CHANGEDIRECTORY 0x00000040