【问题标题】:Adding InstallShiled project to another InstallShield project将 InstallShiled 项目添加到另一个 InstallShield 项目
【发布时间】:2016-07-14 21:34:17
【问题描述】:

我有两个 installshield 项目,我想问一下是否有可能将现有的 ism 项目包装在包装器 ism 项目中?! 所需的功能是: 当我使用自定义安装并选择安装嵌套项目时,它的行为就像我使用它的本机安装程序一样。 我正在使用 installshield 2011 专业版。

感谢您的帮助。

【问题讨论】:

    标签: installshield installshield-2011


    【解决方案1】:

    我遇到了同样的问题。我想要一个 installshield 项目来运行另一个 installshield 项目(它是一个更新程序),以便在安装第一个安装程序之前使软件保持最新。

    我通过创建一个批处理文件解决了这个问题。

    1) 用户启动安装 msi。

    2) 安装程序先决条件通过检查注册表检测到“必须安装以前的版本”并运行批处理文件

    3) 批处理文件杀死当前安装程序进程并运行第二个安装程序

    4) 第二个安装程序完成后,批处理文件会重新运行第一个安装程序(通过使用批处理命令 START /WAIT,等待进程完成)

    5) 现在已经安装了第二个安装程序,先决条件不会触发,您可以继续安装。

    【讨论】:

    • 当然,但是您如何在 ism 文件中使用另一个 ism 文件,该文件最终将在主 ism 下包含其安装程序,我不想开始停止任何 installshield 操作。例如这是两个独立的 installshield 项目。作为结论,我不希望将文件逐个添加到主安装程序并创建新对话框等......我不想重用某人所做的事情。或者我误解了你。希望你申请:) 谢谢。
    【解决方案2】:

    您可以,但需要注意的是。如果您的两个项目都是 Basic MSI 或 InstallScript MSI,您将遇到 Windows Installer 一次只允许一个 MSI 的限制。最终结果是您可以通过 UI 序列中的操作安全地运行两者(如果它们以静默方式运行则失败),您可能可以使用 MSI 链接(我个人不推荐),或者打开其中之一将 MSI 打包成一个先决条件,否则您必须另谋出路。

    一种选择是添加第三个项目,一个纯 InstallScript 项目,作为包装器。如果您走这条路,您必须考虑安装、维护和卸载所需的用户体验,包括决定程序和功能中显示的内容。请注意,在更高版本的 InstallShield 中,套件或套件/高级 UI 项目类型是为此而设计的,但仅限于 Premier 版。 (专业版的高级 UI 项目类型只允许一个主包,你已经有两个了。)

    【讨论】: