I have two installshield projects, I want to ask is it even possible to wrap an existing ism project within a wrapper ism project?! 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项目,我想问一下,甚至可以在一个包装器ism项目中包装现有的ism项目吗?!所需的功能是:当我使用自定义安装并选择安装嵌套项目时,它的行为就像我使用它的本机安装程序一样。我正在使用installshield 2011专业版。
Thanks for helping.
谢谢你的帮助。
2 个解决方案
#1
1
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)既然已安装第二个安装程序,则不会触发先决条件,并且您将继续安装。
#2
0
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. 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.
你可以提出警告。如果您的两个项目都是基本MSI或InstallScript MSI,您将遇到Windows Installer一次只允许一个MSI的限制。最终的结果是你可以通过UI序列中的操作安全地运行(如果它们以静默方式运行则失败),你可能能够使用MSI链接(我个人不推荐),或者转一个将MSI打包成一个先决条件,或者你必须找到另一种方式。
One option could be to add a third project, a pure InstallScript project, as a wrapper. 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. (The Advanced UI project type in the Professional edition only allows for one main package, and you have two already.)
一个选项可能是添加第三个项目,一个纯InstallScript项目,作为包装器。如果沿着这条路线前进,您必须考虑安装,维护和卸载所需的用户体验,包括决定程序和功能中显示的内容。请注意,在InstallShield的更高版本中,Suite或Suite / Advanced UI项目类型专为此而设计,但仅限于Premier版本。 (专业版中的高级UI项目类型仅允许一个主程序包,并且您已经有两个。)
#1
1
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)既然已安装第二个安装程序,则不会触发先决条件,并且您将继续安装。
#2
0
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. 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.
你可以提出警告。如果您的两个项目都是基本MSI或InstallScript MSI,您将遇到Windows Installer一次只允许一个MSI的限制。最终的结果是你可以通过UI序列中的操作安全地运行(如果它们以静默方式运行则失败),你可能能够使用MSI链接(我个人不推荐),或者转一个将MSI打包成一个先决条件,或者你必须找到另一种方式。
One option could be to add a third project, a pure InstallScript project, as a wrapper. 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. (The Advanced UI project type in the Professional edition only allows for one main package, and you have two already.)
一个选项可能是添加第三个项目,一个纯InstallScript项目,作为包装器。如果沿着这条路线前进,您必须考虑安装,维护和卸载所需的用户体验,包括决定程序和功能中显示的内容。请注意,在InstallShield的更高版本中,Suite或Suite / Advanced UI项目类型专为此而设计,但仅限于Premier版本。 (专业版中的高级UI项目类型仅允许一个主程序包,并且您已经有两个。)