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

Javascript InstallShieldXPress启动JScript自定义操作:是否可以访问变量[INSTALLDIR],javascript,installshield,Javascript,Installshield,我正在发现InstallShield Express(2011年第17版)。很好,可以配置一些自定义操作。也就是说,我可以启动JScript脚本(似乎是Javascript方言,文件以*.js结尾) 我的脚本执行一些regedit操作,启动msiexec以安装MSXML,并执行一个exe以安装安全加密狗驱动程序。。。总的来说还是不错的。。。但是我正在使用硬编码路径为WScript.Shell命令提供数据。我从不喜欢那样 为了更聪明,我想知道InstallShield Express属性[INST

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

我的脚本执行一些regedit操作,启动msiexec以安装MSXML,并执行一个exe以安装安全加密狗驱动程序。。。总的来说还是不错的。。。但是我正在使用硬编码路径为
WScript.Shell
命令提供数据。我从不喜欢那样

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

这样我就可以写下这样的东西:

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;
}
函数doInstall()
{

installDir=InstallShieldObject.installDir/您知道您所做的违反了几个最佳实践吗?如果您知道,或者您不在乎,请查看会话对象

属性(“MYPROP”)获取;设置

如果您不知道和/或确实关心,那么请意识到1)脚本自定义操作是脆弱的,2)MSI是声明性的,而不是强制性的。您不应该用自定义操作重新发明轮子,因为可以使用本机完成的自定义操作


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

您是否了解您所做的工作违反了几个最佳做法?如果您这样做,或者您不关心,请查看会话对象

属性(“MYPROP”)获取;设置

如果您不知道和/或确实关心,那么请意识到1)脚本自定义操作是脆弱的,2)MSI是声明性的,而不是强制性的。您不应该用自定义操作重新发明轮子,因为可以使用本机完成的自定义操作


在InstallShield的上下文中,您可以右键单击将注册文件导入注册表表,MSI将为您处理其余部分。

这只是我第一次使用InstallShield进行打包。我非常关心良好做法。Thanx用于向我突出显示它们。Thanx用于向我指示注册文件的导入。我将重试自定义操作ion启动“exe”时使用外部子MSI的命令。MSI不能调用MSI而不违反最佳做法。由于您使用的是InstallShield,您希望查看“安装先决条件”。thx,我添加了“在Windows子文件夹中查找MSIEXC”的条件作为一项要求。这只是我第一次使用InstallShield进行打包。我非常关心良好的做法。Thanx用于向我突出显示它们。Thanx用于向我指示reg文件的导入。我将重试自定义操作启动“exe”使用用于外部子MSI的命令。MSI不能调用MSI而不违反最佳做法。由于您使用的是InstallShield,您希望查看“安装先决条件”。thx,我已添加了“在Windows子文件夹中查找MSIEXC”条件作为要求。