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