installshield 合并模块中的安装后操作
我正在使用 installshield 2011。我有一个合并模块,我希望在安装合并模块后执行某些 exe。此 exe 是合并模块文件的一部分。现在,当我在合并模块中编写自定义操作时,该操作会在文件复制到目标位置之前执行。有没有办法在文件被操作后执行此自定义操作,以便它可以在该位置找到 exe?或者还有其他方法可以解决这个问题吗?
I am using installshield 2011. I have a merge module and I want certain exe to be executed after the merge module is installed. This exe is part of merge module files. Now when I write a custom action in the merge module, the action get executed before the files are copied into the destination location. Is there any way to execute this custom action after files are oped so that it can find exe at that location? Or is there any other way to solve this issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
合并模块不会被“安装”,它们会被合并到安装程序数据库中,这就是安装的内容。换句话说,在 Basic MSI 项目中编写的组件/自定义操作与在 MSM 项目中编写的组件/自定义操作的行为方式相同。
您是否在 MSI 或 MSM 项目中编写自定义操作。区别在于前者使用InstallExecuteSequence表,后者使用ModuleExecuteSequence表。所有其他规则均适用。您可能希望在 InstallFiles 之后将此安排为“延迟且无模拟”(系统上下文)。此外,您可能希望在某个条件下使用组件操作状态,以确保仅在安装组件的密钥文件时执行此操作。
另外,请考虑是否需要在回滚和卸载场景中执行任何操作。并确保该 EXE 正在执行的任何操作都无法在 MSI 中本地完成。 (SelfReg 模式不如本机声明性事务 MSI 模式。)
Merge Modules don't get "installed", they get merged into the installer database and that's what gets installed. In otherwords Components/CustomActions authored in the Basic MSI project and authored in the MSM project behave the same way.
Are you writing the custom action in the MSI or MSM project. The difference is the former uses the InstallExecuteSequence table and the latter uses the ModuleExecuteSequence table. All other rules apply. You probably want to schedule this after InstallFiles as Deferred with No Impersonation ( SYstem Context ). Also you probably want to use the component action state in a condition to make sure this only gets executed when the component's key file is being installed.
Also, consider if you need to do anything in rollback and uninstall scenarios. That and make sure that whatever this EXE is doing couldn't be done natively in MSI. ( SelfReg patterns are inferior to native declarative transactional MSI patterns. )