PDA

View Full Version : Launch Second .MSI with Install Script



rdemarco
12-02-2005, 12:58 AM
I've written some install script code to launch a 3rd party .msi which I've configured as a support file, for some reason it fails on all .msi files but works fine when calling .exe's. My script is below:

function RunMSXML6(hMSI)
NUMBER nResult;
STRING szProgram;
begin
szProgram = SUPPORTDIR^"msxml6.msi";
ChangeDirectory(SUPPORTDIR);
if (LaunchAppAndWait (szProgram, "", WAIT) < 0) then
nResult = LAAW_PARAMETERS.nLaunchResult;
endif;
end;

I'm basically trying to run the MSXML6.msi because there doesn't seem to be a merge module for it yet. I assume I'm doing this incorrectly as not matter what .msi I call I get the same problem?

Can someone please help me with the proper way to do this??

Also, is the way i'm getting nResult correct? It's returning 193 but i don't know what that means?

Thanks, Rick

Thanks, Rick

TsungH
12-04-2005, 11:15 PM
MSI file itself is not an executable. You will need to call msiexec.exe and pass appropriate parameter(s) along with the path to the third-party MSI file. You may want to look up KB article Q108540 at Support (http://support.installshield.com/).

Please note that Microsoft Windows Installer cannot run two instances of Execute Sequence concurrently. You may have to call your function in UI Sequence.

gkcom123
12-14-2005, 12:48 AM
How can i run my second .msi after installfiles execute action
There is no installfiles action in UI sequence
I have to run .msi after copy of all files .
please suggest the solution
Thanks in advance

TsungH
12-14-2005, 04:17 PM
If you have to run the second .msi file after InstallFiles action, you cannot schedule your custom action which runs the second .msi in UI Sequence.

One option is to use nested installation. This thread (http://community.installshield.com/showthread.php?t=154033&highlight=nested) explains briefly on nested installation and highlights its caveats.

Here (http://community.installshield.com/showthread.php?t=141668&highlight=installfinalize) is an alternative approach.

In any case, you will want to search in the forums for related discussions before deciding on what will be most appropriate in your situation.