3
votes

I have created an installation using basic MSI in Installshield 2012.

I am using the chained MSI technology (supported in Windows installer 4.5 and onwards).

My installation is structured with a Main-MSI (in a Setup.exe), and several smaller MSI-packages, which are chained onto the main MSI.

On XP it works like a charm. I can install it just fine, and when I want to uninstall it, I just choose to uninstall the Main-MSI, and it will automatically remove all the chained MSI's.

However, on Vista and Windows 7, I am having a user-rights problem when uninstalling.

When I am choosing to uninstall the Main MSI, it just shots down without further notice. Examining the MSI log file, I can see the following when it tries to uninstall the first of my chained MSI's:

Error 1730.You must be an Administrator to remove this application. To remove this application, you can log on as an administrator, or contact your technical support group for assistance.

I guess that since it is the Main-MSI who are calling the uninstall strings on the chained MSI's, it doesn't happen with elevated rights (Even tho I have set my Setup.exe to require admin rights - which is also a requirement).

So my question is now - is there any way to get around this - is there some flag in the hidden corners of InstallShield that I need to set in order for this to work?

The temporary workaround now is to uninstall every chained MSI-package manually, and then finally uninstall the main-MSI, but this is not a solid solution. Disabling UAC is not an option either.

I hope you are able to help out, since I am totally lost on this issue, and my googling haven yielded anything useful.

2
Are you signing your packages with a digital certificate? I can't remember quite what the behavior is, but I know it helps at least remove the need for some additional UAC prompts when chaining.Michael Urman
No, at this moment I am not signing my packages. I could try it out and see if it will solve the problem. Thanks for the suggestion.Sagi1981
Have you set the MSIDEPLOYMENTCOMPLIANT property?Christopher Painter
Hmm, that looks interesting.. I was unaware of that property. I will try it out this monday. Thanks :)Sagi1981
What Christopher means probably, is, that, setting that property may result in NOT coming up UAC, so could be the reason for failing here. The same if setting the UAC flag in the summary information. This means that this setting/flag, makes often the opposite to what you will understand of it or want as a new user.Philm

2 Answers

1
votes

Actually, the solution is simple, but not very user oriented. The new /qb dialog windows appear during installation and uninstallation.
You must change installation user interface from None (/qn) to Basic (/qb) for chained MSIs, because of main MSI doesn't pass admin rights to own chained MSIs, and it causes an error in hidden mode with UAC enabled.
Also I can recommend refer to White Papers for chained MSI here, it describes a lot of thin moments.

0
votes

I cannot help directly for "the uninstall chained installers" problem, because I don't use chaining myself. I know a number of people having problems with the chaining technology, and I am aware of no example where someone is really satisified with it.

So for me it is not a proven technology for writing bullet proof setups. If you use a boot strapper or write your own setup.exe which installs all the msi files in a sequence you have full control. It can cost high effort, based on your perfection requirements, but a "bunch" install and uninstall should be not so difficult. I have not used "burn" from WiX, but I know it exists. Maybe others know if it is to recommend here.

At least try to use a boot strapper for your uninstall. Your existing one or a new one: Just a small .exe which you put under the "Uninstall" entries in the registry under ARP. It has only to call all MSI uninstalls in a row. Can be a five liner.

Not so beautiful as chaining, but has worked for years for thousand others :-) Good old working tech.