I'm new to AdminStudio and I am learning about custom actions in MSI's.

We are in the process of migrating from Zenworks to SMS. A lot of our Zen objects had dependencies which SMS doesn't handle as well.
I will use our Office 2003 standard install as the example. We have a Office 2003 install that calls several dependencies that run msiexec.exe /x {product GUID} to uninstall access 97, 2000, office 97, 2000, etc.

I would like to create a master msi that runs those msixec uninstall commands, installs another msi that includes our templates and then runs the Office install with a transform.

This was fairly easy with Wise, but I am struggling to figure it out with AdminStudio. Are custom actions the way to go? Can anyone give me some advice?

Thanks in advance, Jon
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
You could detect installed apps and then run the uninstall, but in this case: Nevermind that.
Instead, use the Office Resource Kit to create your mst and there you can specify in detail how office install handles previous versions (keep or remove).
Answered 04/20/2007 by: KPrinz
Fourth Degree Green Belt

Please log in to comment
0
That's an interesting way to think about it, but I am just using Microsoft Office as an example of a Novell object that has many dependencies that call msiexec.exe to install or uninstall something. It could be any app, so while that might help with MS Office, what can I do about the other apps? Is it possible to call msiexec.exe /x or /i with a custom action or other way with Installshield and an msi?
Answered 04/20/2007 by: jfarber
Senior Yellow Belt

Please log in to comment
0
ahh the world of ZFD yuck..

Once you get your head around these MSi's you wont think Zenworks was quite so easy.

the "best practice" for removing MSI's is to use the upgrade table.

MSI has a built in function of upgrades which allows the uninstallation of other applications.

Each application has a product code and upgrade code which identifies the application.

You can tell your new package to lookup the upgrade code for old applications and do either

full uninstall of previous product then install new

or

partial uninstall and partial install of new product

the later is considerably harder to achieve and requires much more understanding of windows installer, conflict management, component reference counting and sequencing.

check out the SDK lookup upgrade code and upgrade table.

I would recommend whilst you are learning the topic of upgrade to sequence the RemoveRelatedProducts action right up next to the FindRelatedProducts action.

John
Answered 04/22/2007 by: jmcfadyen
Fifth Degree Black Belt

Please log in to comment
0
sequencing.

Can you use a MST to do major upgrades/uninstalls?
Answered 04/23/2007 by: jfarber
Senior Yellow Belt

Please log in to comment
0
ORIGINAL: KPrinz

You could detect installed apps and then run the uninstall, but in this case: Nevermind that.
Instead, use the Office Resource Kit to create your mst and there you can specify in detail how office install handles previous versions (keep or remove).


I'll second this. We went from Office 97 to Office 2003 and all I did was create the MST using the Office Resource Kit and that handled everything, without a hitch.
Answered 04/24/2007 by: e40
Senior Yellow Belt

Please log in to comment
0
That will help with Office, but I was just using that as an example. What about other programs? I'll use our Adobe CS2 package for the next example. We have the Novell object call a series of dependencies that uninstalls previous versions. They call msiexec.exe /x and the GUID. Can I have an msi call with custom actions or whatever else, a msiexec.exe command to uninstall or install prereqs.

Thanks.
Answered 04/25/2007 by: jfarber
Senior Yellow Belt

Please log in to comment
0
Adobe CS2 should take care of previous version, for repackaged applications you can create a major upgrade by changing the product code and version, add populate the upgrade table, if vendor msi's dont have the upgrade table populted you can use a tranform.

http://msdn2.microsoft.com/en-us/library/aa369786.aspx
Answered 04/25/2007 by: Tone
Second Degree Blue Belt

Please log in to comment
0
I'm just using Adobe and Office as examples. Basically, I just want to know if you can use custom actions in MSI's to replace the functionality of Zen dependencies. Calling msiexec.exe to install or uninstall with a custom action, either in a MSI or MST.

Thanks for all the help.
Answered 04/25/2007 by: jfarber
Senior Yellow Belt

Please log in to comment
0
You can create nested MSI but its something I have always avoided as it can become a very convoluted process and you can lose control of your installs..
http://support.microsoft.com/kb/306439


On a side note have you created your SMS advertisments and packages in the order you want them to be installed as well as setting priorities, this should help with dependent applications.
Answered 04/25/2007 by: Tone
Second Degree Blue Belt

Please log in to comment
0
I think your right about nested MSI's, that doesn't look like the way to do it.

I would like to do with Installshield what I did with Wise Package Studio.

With Wisescript editor I would have the following commands ran:
msiexec.exe /x {GUID} WAIT
msiexec.exe /x {GUID} WAIT
msiexec.exe /i path transforms=etc WAIT
I could also run other commands, etc...

The wait is a wise command to wait for the step to finish before continuing.
Can Installshield do this?
Answered 04/25/2007 by: jfarber
Senior Yellow Belt

Please log in to comment
0
You should be able to that with installshield script but you wouldnt be able to do it with a standard msi (I also avoid wise\installshield script)

If you used the updgrade table you would be able to remove all previous version of an application before you package installs.. and just use custom actions to carry out command that cannot done using standard actions

Pretty similar to

msiexec.exe /x {MyAppVersion_v1.1}
msiexec.exe /x {MyAppVersion_v2.2}
msiexec.exe /i path transforms=etc
Answered 04/25/2007 by: Tone
Second Degree Blue Belt

Please log in to comment
0
It's doesn't look like you can use a MST to do an upgrade. Is that the case?
Answered 04/26/2007 by: jfarber
Senior Yellow Belt

Please log in to comment
0
incorrect.

MST will work fine for upgrades.

all an MST is, is simply an overlay for database tables / values.

when an installation is run with an MST all values in the tables are simply updated with new values from the MST.

from a table perspective there is no MST.

from an MSI perspective having a transform simply means there is a merge process which runs to blend the two together and an additional file to cache in the installer cache, slightly different meta data written.

upgrades are your best option in this scenario dont use nested CA's if you can avoid it.
Answered 04/26/2007 by: jmcfadyen
Fifth Degree Black Belt

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