Sequence of MSI files
Hi,
I have packaged an applicattion called META4, this package contains 5 msi files and they have to be installed in the correct order.
This msi files are Meta4.msi, Meta4CD2.msi, Meta4Hotfix.msi, Meta4ODBC.msi y Meta4Config; this sequence was made because it was the better way to complete the installation, but now I want to do just one installation so I put on MSI Script (I'm using WPS 7.2) "Install MSI from Installation" and I have chosen the second msi file, then the third, etc.
The problem is that it doesn't work, because only is installed the first msi file and it doesn't install the second one...
Have you some idea what could help me?
Thanks!
I have packaged an applicattion called META4, this package contains 5 msi files and they have to be installed in the correct order.
This msi files are Meta4.msi, Meta4CD2.msi, Meta4Hotfix.msi, Meta4ODBC.msi y Meta4Config; this sequence was made because it was the better way to complete the installation, but now I want to do just one installation so I put on MSI Script (I'm using WPS 7.2) "Install MSI from Installation" and I have chosen the second msi file, then the third, etc.
The problem is that it doesn't work, because only is installed the first msi file and it doesn't install the second one...
Have you some idea what could help me?
Thanks!
0 Comments
[ + ] Show comments
Answers (12)
Please log in to answer
Posted by:
anonymous_9363
15 years ago
Nested MSIs are actively discouraged these days, as there are implications for updates, patches and so on.
Your best option is to build a wrapper in WiseScript. Of course, that means you end up with an EXE rather than an MSI to distribute. If that's not a problem....no problem! :)
If your target machines have Windows Installer v4.5, you could use the new MSIBeginTransaction facility. Th eproblem there is, WPS isn't yet aware of that facility and thus provides no UI to it. You would need to build that in "by hand". Please note that I have zero experience of this facility as yet, so may not be able to answer any questions you may have about it. Your best route for help with that would be MSDN.
Your best option is to build a wrapper in WiseScript. Of course, that means you end up with an EXE rather than an MSI to distribute. If that's not a problem....no problem! :)
If your target machines have Windows Installer v4.5, you could use the new MSIBeginTransaction facility. Th eproblem there is, WPS isn't yet aware of that facility and thus provides no UI to it. You would need to build that in "by hand". Please note that I have zero experience of this facility as yet, so may not be able to answer any questions you may have about it. Your best route for help with that would be MSDN.
Posted by:
cmi2000
15 years ago
Hi VBScab!
I can't use another tool than WPS, because WPS is the official tool to repackage applications for my company. Now I'm trying to do a "capture" of the 5 msi files's installation, to create a new msi file with everything inside... I know that isn't the best way... but I hope that it works :S
thanks you anyway!
I can't use another tool than WPS, because WPS is the official tool to repackage applications for my company. Now I'm trying to do a "capture" of the 5 msi files's installation, to create a new msi file with everything inside... I know that isn't the best way... but I hope that it works :S
thanks you anyway!
Posted by:
anonymous_9363
15 years ago
Now I'm trying to do a "capture" of the 5 msi files's installation, to create a new msi file with everything inside...No, no, no, no, NO! Do NOT capture MSIs.
From the sound of it, your package is for internal distribution. In that case, what's wrong with using your deployment mechanism (let me guess...Group Policy?) to deploy all 5 MSIs separately?
And BTW, WPS includes WiseScript editor which you can use to build the wrapper.
Posted by:
AngelD
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
cmi2000
15 years ago
Yes! WPS Standard Edition doesn't have WiseScript editor.... and you are right, this package is for internal distribution. We have a tool to do that called SDS (Software Deployment System).
I have used that and it works fine with the test system, but then the package is "robocopied" to production system and I have a problem there, because the SDS missed 3 msi files. I don't know why! and I don't have the rights to fix that on SDS "production". I have to contact the domain administrator and he's from France... too much slow procedure!! so I wanted to do everything with one msi file and to forget the original problem....
anyway... I can't solve this now... I think so... :(
I have used that and it works fine with the test system, but then the package is "robocopied" to production system and I have a problem there, because the SDS missed 3 msi files. I don't know why! and I don't have the rights to fix that on SDS "production". I have to contact the domain administrator and he's from France... too much slow procedure!! so I wanted to do everything with one msi file and to forget the original problem....
anyway... I can't solve this now... I think so... :(
Posted by:
anonymous_9363
15 years ago
WPS Standard Edition doesn't have WiseScript editorThat isn't what Altiris's web site says. But anyway, I digress....
Why not build a batch or VBScript file to chain the commands and use one of the many (and free!) batch-to-EXE or VBS-to-EXE compilers to create an EXE? As the saying goes, there's more than one way to skin a cat.
Posted by:
cmi2000
15 years ago
Posted by:
sk
15 years ago
I recently learned wise script, it is very useful for sequencing MSIs or patches, I made Visio 2k7 and project 2k7, did a couple of checks and installed old versions and left files, I even gave the installer an argument to install or uninstall it etc, but you don't have it.
As VBScab told you a .vbs or .bat with some lines will do the work and you can even convert it to a pseudo .exe, but you cannot use .exe's
Never launch that file within an msi because the msiexec.exe process doesn't work really nice with that. If you really only need to provide MSIs you have a problem, and you have to do that...
A very dirty trick (that I do not recommend) is to launch a custom action and run a .vbs file (that runs parallel with msiexec) that monitors if the installation of the 'wrapper msi' is finished and when it is finished it runs all your msiexe /i lines as a kind of after-action. Ensure that your logging will be more complex now and depends on the whole sequence.
As VBScab told you a .vbs or .bat with some lines will do the work and you can even convert it to a pseudo .exe, but you cannot use .exe's
Never launch that file within an msi because the msiexec.exe process doesn't work really nice with that. If you really only need to provide MSIs you have a problem, and you have to do that...
A very dirty trick (that I do not recommend) is to launch a custom action and run a .vbs file (that runs parallel with msiexec) that monitors if the installation of the 'wrapper msi' is finished and when it is finished it runs all your msiexe /i lines as a kind of after-action. Ensure that your logging will be more complex now and depends on the whole sequence.
Posted by:
cmi2000
15 years ago
Hi VBScab!
I left this task for a few days, but I'm working about that again. Obviously, I agree with everybody who told me that "nested msi are discouraged these days". But, in this case that I have to do it for internal distribution and I know that I'll not need later updates or something like that; I think that I can solve my problem doing it thus.
I found the way to complete the nested msi installation, I could install the 5 msi files trough a CA:
in MSI Script -> Execute Inmediate, Installation Sequence, after the InstallFinalize; with a IF Statment (Not Installed) then Install msi from installation .. End
That works fine, but now I have a problem when I want to uninstall.
I used msiexec/x c:\meta4.msi /qb
So, that command line just uninstall the first msi file, how can I do for Install and unistall the 5 msi files using nested msi???
I left this task for a few days, but I'm working about that again. Obviously, I agree with everybody who told me that "nested msi are discouraged these days". But, in this case that I have to do it for internal distribution and I know that I'll not need later updates or something like that; I think that I can solve my problem doing it thus.
I found the way to complete the nested msi installation, I could install the 5 msi files trough a CA:
in MSI Script -> Execute Inmediate, Installation Sequence, after the InstallFinalize; with a IF Statment (Not Installed) then Install msi from installation .. End
That works fine, but now I have a problem when I want to uninstall.
I used msiexec/x c:\meta4.msi /qb
So, that command line just uninstall the first msi file, how can I do for Install and unistall the 5 msi files using nested msi???
Posted by:
spartacus
15 years ago
Like many posters to this forum, I think nested MSI's are tantamount to witchcraft ... but if you really must then ...
you could introduce a Type 39 custom action for each of the MSI's you wish to remove. In the CustomAction table, for each record set the Source field to contain the ProductCode GUID and set the Target Field to "REMOVE=ALL" or REMOVE=ALL /QN for a silent uninstall.
You then need to put the following condition on each of the five custom actions :
[font="courier new"]REMOVE~="ALL"
[font="courier new"]
and if you haven't already done so with your existing five installation custom actions, I'd recommend you condition these with NOT Installed
That way you keep everything mutually exclusive :-)
Regards,
Spartacus
you could introduce a Type 39 custom action for each of the MSI's you wish to remove. In the CustomAction table, for each record set the Source field to contain the ProductCode GUID and set the Target Field to "REMOVE=ALL" or REMOVE=ALL /QN for a silent uninstall.
You then need to put the following condition on each of the five custom actions :
[font="courier new"]REMOVE~="ALL"
[font="courier new"]
and if you haven't already done so with your existing five installation custom actions, I'd recommend you condition these with NOT Installed
That way you keep everything mutually exclusive :-)
Regards,
Spartacus
Posted by:
AngelD
15 years ago
Just follow the step-by-step provided by KB Article 2955:
https://kb.altiris.com/article.asp?article=2955&p=1
https://kb.altiris.com/article.asp?article=2955&p=1
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.