InstallShield在IS安装之外运行Setup.rul操作?

时间:2018-03-22 11:10:43

标签: deployment installshield

据我所知,所有Setup.rul和包含脚本文件操作都标有f1,f2 - f99 ....引用,并且正在使用issetup.dll调用(我假设它们存储在里面)。问题是:如何在安装程序项目安装之外使用issetup.dll(和rundll32?)正确运行这些功能?如果可能的话。

1 个答案:

答案 0 :(得分:0)

使用InstallShield 12或更高版本构建时,ISSetup.dll的代码和支持位是自包含的。但是,f##入口点遵循所有Windows Installer type 1 custom actions的格式,并且需要将实际MSIHANDLE hInstaller传递给它们。即使您没有在代码中使用Windows Installer API,在调用f##函数和调用InstallScript函数之间进行的初始化也将访问句柄,并且如果使用无效句柄调用可能会出现故障值。随意尝试,如果它有效并且您不必在外部支持它,它甚至可能“足够安全。”

如果您尝试将InstallScript脚本语言用于安装以外的目的,虽然它不是完全支持的区域,但可以创建一个InstallScript项目,并用program ... endprogram块替换正常的事件驱动代码。这将创建一个过程脚本,除非您包含它,否则将避免大多数特定于安装的逻辑。因此,这可能会为您提供您正在寻找的行为,但它仍然看起来像是来自外部的安装程序。 (虽然InstallScript在理论上是通用的,但唯一实际的实现与安装非常相关。)请注意,如果你走这条路,你将很难从供应商或大多数其他程序员那里得到支持。