InstallShieldExpress启动JScript自定义操作:是否可以访问变量[INSTALLDIR]

时间:2011-03-14 10:26:44

标签: javascript installshield

我发现了InstallShield Express(2011版本17)。很好,可以配置一些自定义操作。也就是说,我可以启动JScript脚本(似乎是一个Javascript方言,文件以* .js结尾)。

我的脚本执行一些注册工作,启动msiexec安装MSXML,并执行安装安全加密狗驱动程序的exe ...整体相当不错......但我正在提供WScript.Shell命令使用硬编码路径我从不喜欢

为了更聪明,我想知道是否可以通过* .js中的某种InstallShieldObject访问InstallShield Express属性[INSTALLDIR]

所以我可以这样写:

function doInstall()
{
    installDir = InstallShieldObject.INSTALLDIR // <= this is what I'd like to do
    var comandUpdateRegistry = "regedit /s" + installDir + "registryScript.reg"

    oShell = WScript.CreateObject( "WScript.Shell" );
    oShell.Run( updateRegistryScriptCommand );

    return true;
}

1 个答案:

答案 0 :(得分:1)

您是否了解您正在做的事情违反了几项最佳做法?如果您这样做,或者您不在乎,那么请查看Session对象。

Session Object Session.Property(&#34; MYPROP&#34;)Get;集;

如果您不知道和/或您确实关心,那么意识到1)脚本自定义操作是脆弱的2)MSI是声明性的而不是必要的。你不应该使用自定义动作来重新发明轮子,这可以使用Registry table本地完成。

在InstallShield的上下文中,您可以右键单击将Reg文件导入到注册表中,MSI将为您处理剩下的工作。