1
votes

Our digitally signed MSI is set to install only on a per-user basis. This works and does not give a UAC prompt as expected. The files install to AppData as expected. The problem is uninstalling or upgrading the MSI requires an admin un/pass via the UAC prompt. What particular configuration might cause this, or what could I look at to debug this?

  • The MSI is created with Visual Studio's Setup Project
  • The target OS is XP or 7, with 7 being the ideal target
1
How are you writing your installer?Joachim Isaksson
Via the setup project type in VS 2010Brandon Prudent

1 Answers

0
votes

Which OS? How do you managed to get it installed per-user, especially how you got the ALLUSERS property empty for both installation and uninstallation? Are you sure there is not custom action (e.g. from installshield) setting ALLUSERS. Maybe search the msi tables to be sure this property is nowhere set.

I just tried to install and uninstall a simple test msi like this and it worked fine under Win7 (64, SP1) without UAC. So I can at least prove that it is possible:

Install:
msiexec /i testmsi.msi /qb ALLUSERS=""

Uninstall:
msiexec /x testmsi.msi /qb ALLUSERS=""

(Works the same, if ALLUSERS is not set at all in the msi without that commandline param, works the same with productcode for uninstall.)

So the main preconditions are fulfilled:
- My installation path was set to a appropriate AppData path
- No registry entries created on HKLM and not other resources
- ALLUSERS is empty or not defined
- In the summary info the UAC flag is not set
- No custom actions which need elevated rights

I haven't tried with a signed MSI but I don't think this makes a difference.

This means without that you look in the appropriate lines of a logfile or the msi itself, this seems not to answer better.