I'd suggest a minimum version of Windows Installer 3.1v2 (301) which supports Windows 2000 SP3 and 4. http://support.microsoft.com/kb/893803 Version 3 introduced better patching support if you need it. I believe 3.1v2 fixed some bugs in that.
A list of improvements in 3.90 is here http://support.microsoft.com/?kbid=884016 -----Original Message----- From: Sean Leonard [mailto:lists+sourcefo...@seantek.com] Sent: 09 November 2011 23:11 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Per-Machine and Per-User installs on XP/Vista/7 in the same MSI Thanks Palbinder. What are the consequences of targeting earlier vs. later versions of Windows Installer, other than if you specify a greater number than the Windows Installer version, earlier versions won't load it? The software itself supports Windows 2000-Windows 7, which is why we target 200 and above. However, if absolutely necessary, we can pull it up to Windows Installer 3.0. I did end up trying that--I set ALLUSERS=2 and MSIINSTALLPERUSER=1 or "" depending on the circumstances. If I set these by default with <Property>, the install proceeds as expected. However, when I try to switch on-the-fly in the UI, I don't get the expected results. Specifically, in the WiX advanced UI, when switching from per-machine to per-user, the per-machine configuration still actually attempts to get installed, but it does not elevate. Since it does not elevate, the installation fails. Hope this makes sense. I modified the WiX advanced UI ControlEvent so that instead of setting ALLUSERS="" or ALLUSERS=1, it sets MSIINSTALLPERUSER=1 or MSIINSTALLPERUSER="" (actually {}, which has that functionality). ALLUSERS is supposed to remain 2. However, that modification did not help any. Do the WiX built-in UI dialogs come with support for "Single Package Authoring" with MSIINSTALLPERUSER, in some fashion? -Sean On 11/9/2011 3:23 AM, Pally Sandher wrote: > First you need to target Windows Installer 4.0 (or later which means 4.5 on pre-Vista platforms) if you want to make a single package which can do per-user& per-machine installations. This will involve bootstrapping the 4.5 redistributable for pre-Vista SP2 platforms. > The code you pasted shows you currently targeting Windows Installer 2.0 which will never work& is pretty random anyway as you'd get better results targeting 3.1 if XP is the earliest platform you're supporting. > > Second you need to set the ALLUSERS property to 2& set the MSIINSTALLPERUSER property accordingly (empty for per-machine, 1 for per-user) for Windows Installer 5.0 platforms (Windows 7& Server 2008 R2) -> http://msdn.microsoft.com/en-us/library/aa367559.aspx > > That should get you started. > > Palbinder Sandher > Software Platform Engineer > T:+44 (0) 141 945 8500 > F:+44 (0) 141 945 8501 > http://www.iesve.com > > **Design, Simulate + Innovate with the<Virtual Environment>** > Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 > Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP > Email Disclaimer > > > -----Original Message----- > From: Sean Leonard [mailto:lists+sourcefo...@seantek.com] > Sent: 08 November 2011 20:26 > To: wix-users@lists.sourceforge.net > Subject: [WiX-users] Per-Machine and Per-User installs on XP/Vista/7 in the same MSI > > In WiX 3.5, I am trying to create an MSI that can do both per-machine > (ALLUSERS=1) and per-user (ALLUSERS="") installs from the same MSI. In > this case, I want the default behavior to be per-machine, unless the > user takes explicit steps to install per-user. > > I read several forum posts (and some of the Microsoft documentation), > but they are confusing, or not promising. I am hoping that some > ingenious folks here can figure out how to do this! > > Here is the scenario: > Using WixUI_Advanced > When double-clicking on the MSI (i.e., msiexec /i path-to-msi.msi, > without setting any properties explicitly): > On Windows XP: > if the user is an administrator (privileged), the default Install > button installs per-machine. > if the user is not an administrator (not privileged), the default > Install button installs per-machine--which will fail. However, clicking > the "Advanced" button allows the user to install per-user. > On Windows Vista/Windows 7: > if the user is an administrator (privileged), AND elevated, the > default Install button installs per-machine. (The shield icon may or may > not be visible.) > if the user is an administrator (privileged), AND NOT elevated, the > default Install button installs per-machine. (The shield icon should be > visible.) > if the user is not an administrator (not privileged), the default > Install button installs per-machine--which will require the user to be > prompted for an administrator's credentials. (The shield icon should be > visible.) However, clicking the "Advanced" button allows the user to > install per-user. > > In all cases, explicitly setting ALLUSERS="" or ALLUSERS=1 at the > msiexec command-line will force per-user or per-machine installs. > > ******** > The closest we have gotten thus far is: > <Package Id="*" InstallerVersion="200" Compressed="yes" > InstallScope="perMachine" InstallPrivileges="limited" ReadOnly="no" > Keywords="!(loc.PackageKeywords)" > Description="!(loc.PackageDescription)" Comments="!(loc.PackageComments)" /> > > (And various other supporting WiX elements.) > > In the configuration above: > On Windows XP, the behavior is correct. > > On Windows Vista/Windows 7: > *CORRECT*: if the user is an administrator (privileged), AND elevated, > the default Install button installs per-machine. (The shield icon is NOT > visible.) > *INCORRECT*: if the user is an administrator (privileged), AND NOT > elevated, the default Install button installs per-machine. The shield > icon is visible. However, the package does NOT elevate. The error given > is: "You do not have sufficient privileges to complete this installation > for all users of the machine. Log on as administrator and then retry > this installation." Error 1925. > *INCORRECT*: if the user is not an administrator (not privileged), the > default Install button installs per-machine. The shield icon is visible. > However, the package does NOT elevate. Same error as above. Clicking the > "Advanced" button allows the user to install per-user successfully, > without elevation. > > In all cases, explicitly setting ALLUSERS="" at the command-line > performs the intended behavior of forcing per-user installation. > ALLUSERS=1 at the command-line has the intended behavior of forcing > per-machine installation, but it does NOT force elevation--so > per-machine fails on Vista and 7. > > ******** > So basically, is there some way through custom actions or otherwise, to > cause an MSI built with InstallPrivileges="limited" to request > elevation? Alternatively, is there a way to cause an MSI built with > InstallPrivileges="elevated" to reconfigure itself so that it does not > request elevation? > > Thanks all, > > Sean > ----------------------------------------------------------------------------- - RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us. SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207. Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users