Page 1 of 1

Taking Advantage of v10

Posted: Fri Nov 05, 2010 9:49 pm
by cdh
I have just installed v10. I have been using InstallAware since it came out. However, it has been in auto-pilot for a long time. I really like the sounds of v10 since it claims to prevent any setup problems related to Windows Installer with the backup native system. So, here is my question. I have existing InstallAware projects. What changes do I need to make to them to take advantage of this capability properly? Thanks much in advance.

Re: Taking Advantage of v10

Posted: Sat Nov 06, 2010 2:34 am
by bokkie
Andy Mills covers the native engine facilities at this thread:

http://www.installaware.com/forum/viewt ... f=6&t=6098

From what I can gather, you only need to set the pre-defined variable NATIVE_ENGINE to TRUE presumably at the top of your script. :?: :?: :?:

There's another pre-defined variable DELAYUNTIL_APPLYCHANGES which if set FALSE means your script executes at the time it is encountered rather than deferred to the time of the conventional Apply_Install as mandated by the normal Windoze MSI installer. If the variable is TRUE (default?) then the native engine works like it did before. That is, the commands are (where appropriate) stacked up in the internal MSI database tables. There's also a #NO_MSI# compiler variable which if TRUE will inhibit the generation of the internal MSI tables but the online help points out an important caveat about doing so.

It seems, if I read it correctly, the major USP of IA 10 is the native engine and if so, puts it way ahead of the pack.

So, what I've written sounds convincing but I may be guilty of writing heaps of the "brown stuff!" (not for the first time).

Re: Taking Advantage of v10

Posted: Thu Nov 11, 2010 2:53 am
by mills
Yes, the native engine is detailed in the help. At the very least, installations should run at reduced times, but there are various benefits for various situations. Check the help doc for the "native engine" and then reference the various commands that are affected by it.

A huge benefit that I know many people have asked for is that where commands would not accept variables with the Windows Installer engine, they now do accept variables when the Native Engine is used.

With NATIVE_ENGINE = TRUE and DELAYUNTIL_APPLYCHANGES = FALSE, you are basically "emulating" the traditional, windows install engine, so you get the commands queued with a speed boost.

I think it's worth sharing the help doc's notes on NO_MSI for reference:
NO_MSI: if set to TRUE, the setup compiler will skip MSI database generation as part of a build process, significantly speeding up the build. However, setups built without MSI databases will fail at runtime if the Windows Installer installation mode has been selected through the pre-defined variable $NATIVE_ENGINE$. Additionally, when the Native Engine is being used, the MSI file is still required to be built if the Remove Assemblies command is used in the setup script.

Re: Taking Advantage of v10

Posted: Thu Nov 11, 2010 3:27 am
by bokkie
I'd like to see you-know-what try to do this!

Re: Taking Advantage of v10

Posted: Thu Nov 11, 2010 8:08 am
by cdh
If the setup is left as is, but it encounters some error due to MSI stuff, will it automatically switch to the native mode as a backup without me making modifications to the script? I believe I read that somewhere in the info before buying...

Re: Taking Advantage of v10

Posted: Thu Nov 11, 2010 2:07 pm
by mills
I don't think there's currently any automatic fall-back or retry with the other engine if the first fails, but it's an idea worth considering.

If your setup is failing in Apply Install, which can be difficult to debug at times, it might help to switch into native mode to see if it solves the problem and if not, it may help with debugging, since you can step through and see the effects of the purple Windows Installer commands immediately.

Re: Taking Advantage of v10

Posted: Thu Nov 11, 2010 3:56 pm
by cdh
PS - one other thing... Just to be 110% sure.... If I set the native variable to true and also set NO_MSI to true, the setup does not need the Windows Installer runtime at all anymore, correct?

Re: Taking Advantage of v10

Posted: Mon Nov 15, 2010 3:43 pm
by mills
That is basically the case, however there appears to be a caveat for runtimes (at least at the moment). That is, runtime installers generally make use of an msi to install, so if you have any runtime dependencies, then you aren't necessarily going to have a pure, msi-free installer. Although, your software would install without the need for Microsoft Installer.

However, you could repackage the runtime installers using PackageAware to achieve an MSI-free installer.