我注意到,每次重新构建InstallShield项目时,文件PROJECT_ASSISTANT\Interm\ISSetup.dll
都会更新。如documentation中所述,它执行InstallScript自定义操作。
我总是向我的客户提供一个exe PROJECT_ASSISTANT\SINGLE_EXE_IMAGE\DiskImages\DISK1\Setup.exe
,并且在没有此ISSetup.dll的情况下安装可以顺利进行。
那么,该ISSetup.dll是否以某种方式打包到单个setup.exe中?如果没有,如何在客户端计算机上执行Installscripts?
我想告诉您项目类型(基本MSI,InstallScript或InstallScript MSI),但是由于我是通过命令行(InstallShield 2012 SpringSP1 SAB)构建项目的,因此无法以GUI模式打开项目查看属性窗格,我不知道如何从.ism(XML格式)文件中获取此信息。
最佳答案
我忘记了文件可能包含在每个项目类型中的确切位置(有时直接在setup.exe
中,有时是间接的)。无论如何,ISSetup.dll
始终是已编译的InstallScript引擎(C ++部分),并且经常将已编译的setup.inx
(InstallScript部分)“流式传输”到其中。某些东西(也许是setup.exe,也许是Windows Installer的自定义操作)调用它来运行我们提供的或您编写的InstallScript代码。
因此,对原始问题的简短回答是:是的。
为了回答未解决的问题,Interm
文件夹是一个中间文件夹,用于暂存某些内置在setup.exe
或.msi文件中的文件,并且ISSetup.dll
肯定会为每个版本的Windows接收更新的编译脚本代码。包含自定义操作的基本MSI或InstallScript MSI。