Page 1 of 1

No Progress is displayed even though I am using .msi

Posted: Mon Apr 20, 2009 12:33 pm
by d.sha
Hello,

I am having a hard time to get a progress bar status while installing my .msi files. I am doing it as described in the paper located on the InstallAware website (How to install (or remove) a third party MSI using InstallAware).

Furthermore the Main Installer finishes up with the msi still running in the background. After several minutes the msi software finally finishes installation. I have no idea why this happens.

I tested it on several systems. Same result.

Does anyone has any suggestions?

THX allot...

best,


[/code][/url]

Posted: Mon Apr 20, 2009 5:35 pm
by MichaelNesmith
Are you using (Un)Install MSI Setup, or Run Program (As)? You need to use the former and also ensure that a progress dialog with a progress bar and progress text label are visible.

Posted: Tue Apr 21, 2009 3:43 am
by d.sha
Hi Michael Nesmith,

I am using (Un)Install MSI Setup. My code looks like this:

Code: Select all

Set Variable PROGRESSTEXT to ProductName
Install/ Remove MSI Package ProductName.msi [ADDLOCAL)ALL] (get result into Variable MYRESULT)
And all the way down in the code (after Apply Install) I set Progress to 100.

I am using a progress dialog containing a progress bar and progress text. My problem is, that it does not behave as it should. The PROGRESSTEXT is visible for a sec. (in the dialog) then it disappears. Also the msi return value is giving me a "success" but the msi did not even terminate (still running in background). So this looks like the Installer and the msi is running asynchronously.

Posted: Tue Apr 21, 2009 5:49 am
by d.sha
After some research I found out that this problem only seems to occure with an msi created with IA. I created the not propper working msi via the "group policy wizard".

So here's the question: How can I convert an exe file to msi or how can I create a proper msi file by using the IA? The "group policy wizard" does not seem to do it right.

These steps are also missing in the "How to install (or remove) a third party MSI using InstallAware" Tutorial http://support.installaware.com/index.p ... ticleid=14.

THX for the help

best,

Posted: Tue Apr 21, 2009 9:47 am
by MichaelNesmith
If you're trying to re-use code between InstallAware projects, take a look at the Include Script command. That is the proper way to do it. Trying to consume EXE or MSI files produced by a built setup will result in less elegant solutions as you have observed - they will still work, of course.

Posted: Tue Apr 21, 2009 11:20 am
by d.sha
I see your point. we are already sharing some code between different installer projects by using the Include Script command.

however, in this case we need to reuse built installers in another meta installer. when trying this as described above, the install MSI plug-in does not provide the same status as when running the sub installers by hand.

since it does work fine with MSIs that are not built with IA, I was wondering if we are using the correct steps to convert an IA EXE to an MSI installer. we are using the "Package is InstallAware generated installation" option of the install MSI plug-in. also we are using the Group Policy Wizard with default options to convert the IA EXE to an MSI.

are we missing some steps in the process?

Posted: Tue Apr 21, 2009 1:01 pm
by MichaelNesmith
Unfortunately, you cannot natively capture and display InstallAware's own progress, because InstallAware always runs on top of Windows Installer / MSI to ensure your scripting magic in your MSIcode works seamlessly.

So even inside the Group Policy Wizard generated MSI file, what you have is InstallAware's EXE file which does everything. The GP MSI extracts the EXE and starts it and then quits - which explains the progress behavior you are witnessing. The GP MSI cannot even wait for completion because then the MSI mutex will be locked, preventing the inner EXE from successfully entering the Windows Installer phase of setup.

Remember, InstallAware makes all changes to the system through MSI/Windows Installer itself, so even though you cannot run the MSI without the InstallAware engine, everything is still going through MSI.

And keep in mind that our setup engine does not pre-install anything - it works out of the box on even virgin Windows 95 gold released in August 1995, and has no dependencies on COM or any other kind of brittle aspect. Our customers say that they've been quite hurt by InstallShield's dependencies on COM, the fact that it has to pre-install its own scripting engine and so forth - none of these apply to InstallAware so do not be worried that we have a scripting engine, it won't give you any of the headaches that you might be used from your InstallShield experience, if any.

Finally, for your scenario, I'm thinking of a custom command line parameter that displays a progress UI in your InstallAware setup, instead of running it quietly. This way, you can at least display progress - while still keeping setups separate, since you've said you require that structure.

Posted: Wed Apr 22, 2009 4:02 am
by d.sha
the problem is mostly one of setting the right expectations. from the help on the (Un)install MSI plug-in it sounded like IA MSIs are fully supported. what is the IA installer option then really good for?

also in practice, I don't see how you could really use that plug-in with IA MSIs. at least by the time we are firing off our third sub MSI - with the first two probably still running - the plug-in returns an error.

so what are our options when we want to stay with using IA for all of our installers?

* using a custom command line parameter that triggers a special progress dialog in the sub installer that would overlay the main installer (your suggestion below); I guess we would that go back to using Run Program so that we can wait for the sub installer to finish (kind of ugly since the user could click on the main GUI and send the progress to the background)

* using Run Program without real status (not good since you won't see any errors and users tend to think that the installer is hanging)

* sharing the installer code via Include Script (not good since the sub products would get the product ID of the main installer which is not what we want since we need to maintain the sub products with their regular update installers; also the main installer would get quite big and have too much waiting time during start-up)

* anything else?

Posted: Wed Apr 22, 2009 6:54 am
by MichaelNesmith
(Un)Install MSI Setup does of course support InstallAware MSI's - its exactly the plug-in that removes old versions of your setup before your main script moves onto install new ones...

If you're concerned about the main GUI sending sub-progress to the background, why not use the System Tray command to hide the main GUI until the sub-process is complete?

In essence I get the feeling you're creating a problem that doesn't need to exist. With compiler variables, runtime branching, include scripts, web media blocks, InstallAware gives you better options than to create multiple disjoint setups and then try to chain them together.