/build/static/layout/Breadcrumb_cap_w.png

Run MSI out of another MSI (nested)

Hello everybody,
I am stucking by one problem. I have two MSI packages, one with the main apps and one with the config files. In the first packages are no shortcuts and in the config msi is with help of a launch wrapper advertised shortcuts to the config files. Now is the problem when e.g. the installdir folder will be deleted that only the repair console of the config MSI will start and not of the main MSI. Well, I thought, ok, one statement (if reinstall....) but the problem is that only MSI can be run at the same time. There is a option about nested MSI but I only want to work with the product code (/foums {......})
Now I am lokking for a possiblity to start the config msi, set it on hold so that it can run the main msi.
Do u know their any way or is it impossible?

Thx and cu

0 Comments   [ + ] Show comments

Answers (9)

Posted by: kiptek 15 years ago
Second Degree Green Belt
0
may seem like a rather obvious question, but did you create these MSIs yourself? Are they vendor MSIs?
Posted by: anonymous_9363 15 years ago
Red Belt
0
You now know why nested MSIs are no longer recommended. Either deploy the MSIs separately or build a wrapper EXE to install them separately.
Posted by: mac-duff 15 years ago
Second Degree Blue Belt
0
Hi,
yes, the MSI are created by myself and not really big.

Well, its not really a nested MSI, I just want to repair both when one will be repaired, means I only want to launch the msiexexc /foums command
Posted by: kiptek 15 years ago
Second Degree Green Belt
0
so why have 2 MSIs?
Posted by: mac-duff 15 years ago
Second Degree Blue Belt
0
becasue the customer want to have it that way
Posted by: anonymous_9363 15 years ago
Red Belt
0
ORIGINAL: macduff
becasue the customer want to have it that way
In that case, you - as the packaging 'expert' - need to explain that the two requirements (1, to have nested MSIs and 2, to have them both repaired with one command) are essentially mutually exclusive.

I suppose you *could* hack something together by adding a Custom Action to one of them which runs at repair time which will shell out and repair the other, but...really...it would be a monumental mess. And future maintenance? [shudder]
Posted by: mac-duff 15 years ago
Second Degree Blue Belt
0
packaging 'expert' - need to explain that the two requirements (1, to have nested MSIs and 2, to have them both repaired with one command) are essentially mutually exclusive. I suppose you *could* hack something together by adding a Custom Action to one of them which runs at repair time which will shell out and repair the other, but...really...it would be a monumental mess. And future maint


Well, ok. its not 100% neccessary but it would be nice when it work with two seperated MSI which one can run the repair of the other
Posted by: NOxxie 15 years ago
Senior Yellow Belt
0
Mac,

First up i must concur that the guys above are on the right track, this isn't what you want as a solid production solution.

Second, i've been in your position! and i solved it by using a VBS script ( posting example. ) that monitors the MSIEXEC.EXE process and shoots the 2nd commandline when the MSIEXEC.EXE stops working or closes.

This way i managed to chain 3 MSI's so i could "overwrite" the nesting issue.


PROCESSCHECK.VBS
========================================================================
strComputer = "."
strProcName = "notepad.exe"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colMonitorProcess = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceCreationEvent WITHIN 1" & _
"WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='" & _
strProcName & "'")
WScript.Echo "Waiting for " & strProcName & " process to finish..."
Set objLatestEvent = colMonitorProcess.NextEvent


Remember, this is only an example with notepad.exe you'll need to alter this to make your own.
( Due to company rights i cannot post the exact script. )

Regards,

NOxxie
Posted by: nheim 15 years ago
10th Degree Black Belt
0
Hi macduff,
i hope, i interpret your description correct.
Your client will have their reasons, to believe they need 2 packages for this.
Please, please find out what makes them believe this scenario is the best.
Are there other permissions? Are there situations, were only part of the stuff is needed?
What are those config files for? Do they have to be user editable?
Maybe this could be achieved by using Active Setup to reinstall a feature to each users profile?

However, one possibility would be to start the second MSI at the very end of the first.
That means, you create a custom action of type 226 to run the second MSI (226=128+64+34).
Something like this:
InstallYour2App 226 dirpropertyhere msiexec /i "[SecondApp.msi]" /f[REINSTALLMODE] /qb

And then call it from the very last position in InstallExecuteSequence:
InstallYour2App NOT Installed 7000

Another possibility would be to place the call into the InstallUISequence.
This would have the advantage, that it would happen only in interactive mode.
Then admins could still install it with deployment systems as separate packages, without changes.
Regards, Nick
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ