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

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
may seem like a rather obvious question, but did you create these MSIs yourself? Are they vendor MSIs?
Answered 07/31/2008 by: kiptek
Second Degree Green Belt

Please log in to comment
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.
Answered 07/31/2008 by: VBScab
Red Belt

Please log in to comment
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
Answered 07/31/2008 by: mac-duff
Second Degree Blue Belt

Please log in to comment
0
so why have 2 MSIs?
Answered 07/31/2008 by: kiptek
Second Degree Green Belt

Please log in to comment
0
becasue the customer want to have it that way
Answered 07/31/2008 by: mac-duff
Second Degree Blue Belt

Please log in to comment
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]
Answered 08/01/2008 by: VBScab
Red Belt

Please log in to comment
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
Answered 08/06/2008 by: mac-duff
Second Degree Blue Belt

Please log in to comment
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
Answered 08/06/2008 by: NOxxie
Senior Yellow Belt

Please log in to comment
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
Answered 08/07/2008 by: nheim
Tenth Degree Black Belt

Please log in to comment
Answer this question or Comment on this question for clarity