Does InstallAware conform to Microsoft Installer best practices?
Hi deployment crowd,
I hope that soemone can tell me (from own long-time experience) if InstallAware is a real alternative to InstallShield when I need a tool to build installations that meets the intention and the requirement of Microsoft Installer.
I am evaluating IA and discovered that you are not able to edit the MSI-Files directly, also the Sequences are not editable. It seems to me that the MSI-file is built at install-time based on the setup script.
In my opinion I loose completely the influence on what is going on during execution-sequence. It is like sending your request to a black box and hoping everything wil be alright.
InstallAware even gone a step forward and reinvented the wheel (MSI) by adding the possibility to completely install without Microsoft Installer technology. They call it "NativeCode" but I have no idea how it workes internal and there is no documentation about it. In general InstallAware seems a bit poor in documentation.
If you need native MSI-files for software distribution then you have to use a tool from InstallAware ("GroupPolicyWizard") that embeds your setup.exe within a strange MSI-file. So you can have a multi-language msi-file for instance. I thought that this is impossible, but IA did it ;)
Hope someone who knows InstallAware can tell his opinion about it.
My feeling is that InstallAware isn't a real alternative but a tool that reduces MSI-technology to absurdity?
Thx a lot.
They contain links to the setup projects that are supposed to replicate these results. WiX samples are even included.
Has anyone tested and verified these claims? The claims do sound boastful...I would appreciate some precise feedback on the technical merits of each product; and needless to say, size and speed have always been two crucial factors in evaluating hardware/software performance.
Sorry not a IA user (I use installshield).
The only thing I can tell you is that I edit sequences all the time, if I did not have that ability the complexity of deployments would go up (and my sanity would go down:).
Just FYI, even installshield strays from MS installer standards. From what I have seen almost all of them do (Except Ora). Most of the time its to add ease of use or features. Installshield has ini edits, xml edits and advanced folder rights. All of which are not native MSI abilities (easy to tell with IS, you will see custom tables that start with "IS"...
I absolutely HATE MSI wrappers... Java, Lotus Notes etc use msi more like a wrapper then install tech. Completely messes crap up (try running java msi twice in a row and see if it works:).
Honestly I have not seen an installer tech nearly as competent, full of features and flexibility then MSI. IA's native installer code may help in some situations but it just seems too proprietary.
My opinion is keep to msi if you mainly support windows. Otherwise the tools needed to edit/create msi, is peronal preference and needs.
I would not stand for a solution that I can't edit every facet of an msi even if just direct table edits.
This is impossible as Microsoft has blocked it and reputable companies like InstallShield are therefore not offering a solution that does this.
How come InstallAware figured it out, and nobody else did?
InstallAware basically makes low-level MSI table editing look like assembler programming.
If the Windows Installer engine is being used to install, all actions which actually modify the target system are executed through the Windows Installer engine (to the extent where it is possible). The MSI file that contains all this logic is not the outer-most MSI file that is built by the Group Policy wizard - the GP MSI is basically a "Trojan Horse" which launches InstallAware's setup.exe file, which actually passes control to the inner setup.msi file when the statement "Apply Install" is called. You can easily see this real MSI file when you do an uncompressed build, and open up the MSI file in Orca. InstallAware actually embraces and extends Windows Installer technology, so with some low-level MSI (or shall we say, assembler skills), you can easily find the correlates for your script commands in InstallAware's MSIcode script as generated in the resultant MSI file.
For example, a single "Install Files c:\path\*.* to $TARGETDIR$" MSIcode command will create multiple component, directory, file table entries in your MSI file - all without you having to know anything about any of these underlying structures. This is what's so great and so much fun about InstallAware.
The whitepaper (www.installaware.com/msicode_scripting_technology.pdf) explains some of the details of the plumbing that makes this happen at length. Basically, InstallAware is a 4GL language/compiler which produces MSI files - and it works extremely well. The illusion of having a conditionally executing setup script is perfect, despite this being practically impossible using just Windows Installer.