If you set InstallScope="perUser" then your MSI will be marked to not prompt
for elevation. As a consequence you cannot set ALLUSERS and all resources
must go into locations that don't require elevation, unless you want to see
the error you are reporting. ProgramFilesFolder always requires elevation
(unless the default permissions have been severely altered) and as a result
your files should not go under ProgramFilesFolder if you set perUser as your
installation scope.

Real perUser installations are very possible under Vista and XP (I have
written several), but they require that you pick a directory to install that
is in the user's profile and not in "Program Files", and that you don't put
anything in HKLM.

In Windows 7 (using MSI 5.0), the ProgramFilesFolder gets remapped to a
profile location when the installation ends up perUser, which is what helps
enable switchable packages, but only when setting the MSIINSTALLPERUSER
property. In downlevel platforms, that folder never changes value and thus
always points to a protected perMachine location.

Also, Windows 7 does not force you to write perUser. You can write
perMachine and get just as good a job as under Vista with the very same MSI.
It simply makes a very old pattern installation pattern that was never very
well supported previously more viable.

Without Windows 7 you generally have to write two MSI files if you wish one
to be perUser and the other perMachine. With Windows 7 you can still use the
exact same MSI files in the same way (there is NO forcing of a new way), or
you can make a single package that can be installed either way using the new
property to enable the new behavior.

-----Original Message-----
From: Markus Karg [mailto:markus.k...@gmx.net] 
Sent: Thursday, November 05, 2009 1:01 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: [WiX-users] InstallScope="perUser" makes only sense on Windows
Seven?

This perMachine / perUser discussion really confuses me. ;-)

 

I tried what happens if I set InstallScope="perUser".

 

The result is, that I cannot install the software on Vista, because it says
I do not have sufficient access rights to enter C:\Program
Files\[Manufacturer] (no, it does not ask whether it shall elevate, even if
I set InstallPrivileges="elevated" in addition to InstallScope="perUser").
This is because "real" perUser installs are only possible in Windows 7, but
all other Windows (= 99,9% of all existing installations) will share the
files folder.

 

So if InstallScope="perUser" useless on every OS besides Windows 7?

 

The consequence would be that one must write different .msi for Vista and
Windows 7 -- one that is perMachine (since perUser will not work) and one
that is perUser (since that seems to be what Microsoft wants us to do in
Windows 7).

 

This sounds weird, since everything else besides that flag will be the same!

 

Or did I miss something?

 

Thanks

Markus

----------------------------------------------------------------------------
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus
on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to