I have 2 .msi files, say a.msi and b.msi.
I need to chain these two msi files together. I need a wrapper program which starts installation of a.msi file first. Once it is completed installation of b.msi should start.
I installed InstallShield express 2014 to do this task. But articles show that it needs a commercial version of InstallShield is needed. Please help.
Thanks
InstallShield Express is commercial, so perhaps you meant the Limited Edition. Regardless, short of creating a Suite Project in InstallShield Premier, you really shouldn't try to chain MSIs files together.
If one of those two files is a prerequisite rather than a component, you can look into the prerequisite support. The prerequisite editor is available in the Professional and higher editions; prerequisites themselves are usable in lower editions.
Related
I was using InstallShield 2011 (licensed version) to build .ism and .uip InstallShield projects and create .exe and .bin files from them. Since I was using command-in-line arguments (IsCmdBld.exe, InstallShieldUniversalCommandLineBuild.exe) with the above .ism and .uip projects to build, it's pretty easy for us to and create setup.exe and setup.bin from them.
Our sample syntax:
exec executable="${installShield.home}/IsCmdBld.exe" dir="."
arg line=' -p "../ISScript/setup.ism" -r "${release}" '
exec executable="${installShield.universal.home}/InstallShieldUniversalCommandLineBuild.exe" dir="."
arg line='"../universal/setup.uip" -build ${release}'
The issue was raised when we were thinking of upgradation of InstallShield to the latest version, we couldn't find the build tool (InstallShieldUniversalCommandLineBuild.exe) in the latest package. So the installers (.bin) creating for UNIX based platforms are stopped.
FYI: While we were using InstallShield 11 (licensed version) to create the universal installer (.uip) using "InstallShieldUniversalCommandLineBuild.exe" as an executable, we had a package named "Universal" in our InstallShield 11, which contained the above command line too.
We would be happy if you could help us with this.
It's not completely clear what your question is, but I think it's along the lines of “How do I build a .uip project with a current offering from Flexera?” And, while I have some clarifications to offer (and I will), the bottom line is that the product that handled .uip projects was discontinued long ago, so there's likely to be some significant migration work.
In the InstallShield 11 era (2005 or so), the Windows and non-Windows branches of InstallShield were packaged together as a product called InstallShield Universal. Since then, two relevant things changed. The combined packaging was discontinued, so if you need to support both Windows and non-Windows, Flexera's products are once again separate offerings. Also, after ZeroG's InstallAnywhere joined the family, the long term result was that InstallShield Multiplatform was discontinued, and InstallAnywhere survived as the non-Windows offering.
So the important question is what sort of upgrade path there is from your .uip into InstallAnywhere. This is outside my knowledge (I just worked on the Windows side), but there is a mention of Upgrading from InstallShield MultiPlatform in the InstallAnywhere documentation. Thus I wouldn't rule it out. And once you sort that out, you'll have to adjust your build script to use either build.exe or Ant, by the looks of it.
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.
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.
I solved this by creating a batch file.
1) The user launches the install msi.
2) The installer prerequisites detects that "previous version must be installed" by checking the registry and runs the batch file
3) The batch file kills the current process of installer and runs the second installer
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)
5) Now that the second installer was installed, the prerequisites doesn't trigger, and you resume with the installation.
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.
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.)
We are planning to create setup file for our project, our research lead us to:
InstallAwere 18
InstallShield 2013
We have some requirements that must be supported:
Windows Server 2012
Able to run other MSI/EXE
Full support for patches/updates
Run Powershell script
Database support (Create db/Execute sp)
Web site deployment
Nice to have:
- Windows features identification (run installation if necessary)
- Web installer (small package that will download all the necessary components)
Did I miss any other product on the market that can support all this? And the final question is what would you suggest for our setup package between these two?
Firsthand experience would be great.
Actually there is another application you can use for creating setup packages. It is Advanced Installer.
I'm using it for several years and it is really easy to use. I think it can help you with all of your requirements. They also have a great support team.
i think that InstallAware is more power full than InstallShield
look: http://www.installaware.com/compare-with-otherinstall-tools.htm
Being forced to use the garbage version of LE in VS 2012, I cannot get things to build because it is telling me that my install folder path is too long. It literally looks like it is creating the same path, verbatim, inside of another folder. First this fails on the DVD so can I disable that? Second, this appears to be controlled by the variable ISProductFolder but I cannot find how to modify that location.
Can somebody please help?
Well, it is not surprise that each setup tool has its problems. Please note that there are no tools which can accurately detect your application dependencies. The best a tool can do is make suggestions. This is why most setup developers determine the dependencies themselves and manually include them in the installer.
If you're not happy with InstallShield, you can try a different setup tool: http://en.wikipedia.org/wiki/List_of_installation_software
The free version of Advanced Installer includes a Visual Studio setup project which may help.
I have an application that uses the ms vc++ runtime. How should I install it on the end-user's system if it is not present? I was thinking of bundling it with the installer... but how would I do that as far as what to include? Is there some silent installer? If so, where can it be found? I can't seem to find it in the Windows SDK.
There is an interesting post about deploying the runtime libraries on the Visual C++ blog. The post is about VC8 so I'm not sure all the recommendations apply to VC9.
Here are your options according to Microsoft:
Use an .msi installer including the .MSM files for the VC
libraries you're using. These MSM
files install the libraries globally.
They also keep a reference count so
that the libraries are removed when
the last application using them gets
uninstalled.
Use "app-local"
deployment i.e. copy the
libraries and manifest files in your
application directory. This is a simpler
solution if you don't use an .msi
installer. Your app should still use the
system version of the libraries if they are more
up-to-date than your own.
Link everything statically (and avoid crt usage across dll boundaries)
Another option Microsoft discourage you from using is running the Visual C++ redist installer from your own installer.
I'm not sure what their reasons are. It will take a few extra megabytes and will not be reference counted but it still works very well AFAICT. You can pass the /q option to vc_redist_x86.exe to perform an unattended install (no user interaction).
It has it's own installation program. I've seen it usually run as a prereq step of a larger installer.
One way or the other, you need to list it in your manifest. So you might just as well deliver it as via SxS in your application rather than try to deliver a global copy to the target machine. SxS is a big hard subject, sadly. Hopefully someone will supply an answer with more details and I'll delete this one.