我正在使用installshield 2011.我有一个合并模块,我希望在安装合并模块后执行某些exe。此exe是合并模块文件的一部分。现在,当我在合并模块中编写自定义操作时,在将文件复制到目标位置之前执行操作。有没有办法在文件运行后执行此自定义操作,以便它可以在该位置找到exe?或者还有其他方法可以解决这个问题吗?
答案 0 :(得分:2)
合并模块没有“安装”,它们会合并到安装程序数据库中,这就是安装的内容。换句话说,在基本MSI项目中创作并在MSM项目中创作的组件/ CustomActions的行为方式相同。
您是在MSI或MSM项目中编写自定义操作吗?区别在于前者使用InstallExecuteSequence表而后者使用ModuleExecuteSequence表。所有其他规则适用。您可能希望在InstallFiles之后将其安排为Deferred with No Impersonation(SYstem Context)。此外,您可能希望在条件中使用组件操作状态,以确保仅在安装组件的密钥文件时才执行此操作。
另外,请考虑是否需要在回滚和卸载方案中执行任何操作。这确保无论这个EXE做什么都无法在MSI中本地完成。 (SelfReg模式不如本机声明式事务MSI模式。)