简体   繁体   English

将InstallShiled项目添加到另一个InstallShield项目

[英]Adding InstallShiled project to another InstallShield project

I have two installshield projects, I want to ask is it even possible to wrap an existing ism project within a wrapper ism project?! 我有两个installshield项目,我想问的是,是否有可能将现有的ism项目包装在wrapper ism项目中? The desired functionality is: When i use custom installation and select to install the nested project it will behave as like i used it's native installer. 所需的功能是:当我使用自定义安装并选择安装嵌套项目时,其行为将与我使用的本机安装程序一样。 I'm using installshield 2011 Professional edition. 我正在使用installshield 2011专业版。

Thanks for helping. 感谢您的帮助。

I encountered this SAME problem. 我遇到了这个相同的问题。 I wanted an installshield project to run another installshield project (which was an updater) to bring the software up to date before installing the first installer. 我想要一个installshield项目来运行另一个installshield项目(这是一个更新程序),以便在安装第一个安装程序之前使软件更新。

I solved this by creating a batch file. 我通过创建一个批处理文件解决了这个问题。

1) The user launches the install msi. 1)用户启动安装msi。

2) The installer prerequisites detects that "previous version must be installed" by checking the registry and runs the batch file 2)安装程序先决条件通过检查注册表来检测“必须安装以前的版本”并运行批处理文件

3) The batch file kills the current process of installer and runs the second installer 3)批处理文件会杀死当前的安装程序进程并运行第二个安装程序

4) Once the second installer is finished, the batch file re-runs the first installer (by using the batch command START /WAIT, which waits for a process to finish) 4)第二个安装程序完成后,批处理文件将重新运行第一个安装程序(通过使用批处理命令START / WAIT,它等待进程完成)

5) Now that the second installer was installed, the prerequisites doesn't trigger, and you resume with the installation. 5)现在已经安装了第二个安装程序,前提条件不会触发,您可以继续安装。

You can, with caveats. 可以警告。 If both of your projects are Basic MSI or InstallScript MSI, you will encounter the limitation that Windows Installer will only allow one MSI at a time. 如果两个项目都是Basic MSI或InstallScript MSI,则将遇到Windows Installer一次仅允许一个MSI的限制。 The end result of that is you can either run both safely through actions in the UI sequence (and fail if they are run silently), you might be able to use MSI Chaining (which I don't personally recommend), or turn one of the MSI packages into a prerequisite, or you have to find another way. 这样的最终结果是,您既可以通过UI序列中的操作安全运行(如果以静默方式运行则失败),您可以使用MSI链接(我个人不建议这样做),或者将其中之一将MSI打包为先决条件,否则您必须寻找其他方法。

One option could be to add a third project, a pure InstallScript project, as a wrapper. 一种选择是添加第三个项目,即纯InstallScript项目,作为包装。 If you go down this route, you have to consider what user experience you want for installation, maintenance, and uninstallation, including deciding what shows up in Programs and Features. 如果沿这条路线走,则必须考虑要为安装,维护和卸载提供什么样的用户体验,包括确定“程序和功能”中显示的内容。 Note that in later versions of InstallShield the Suite or Suite/Advanced UI project type is designed for this, but only in the Premier edition. 请注意,在更高版本的InstallShield中,Suite或Suite / Advanced UI项目类型是为此目的而设计的,但仅在Premier版本中。 (The Advanced UI project type in the Professional edition only allows for one main package, and you have two already.) (专业版中的Advanced UI项目类型仅允许一个主程序包,而您已经有两个。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM