Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
Could you please share the complete code. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7596724.html Sent from the wix-users mailing list archive at Nabble.com. -- Want excitement? Manually upgrade your production database. When you want reliability, choose Perforce. Perforce version control. Predictably reliable. http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
If your MSI package is always per-user, why wouldn’t you just retrieve and use the path of FOLDERID_UserProgramFiles instead of ProgramFilesFolder? Blair From: Sascha Sertel Sent: Monday, January 27, 2014 10:58 AM To: General discussion for Windows Installer XML toolset. With MSIINSTALLPERUSER=1 on Windows 7 and above the ProgramFilesFolder location gets automatically rerouted to LocalAppDataFolder if running a per-User install. This MSDN article shows where all the folder locations point to in per-machine vs. per-user installs: http://msdn.microsoft.com/en-us/library/windows/desktop/dd765197(v=vs.85).aspx // Sascha On Mon, Jan 27, 2014 at 8:46 AM, Rob Mensching r...@robmensching.com wrote: No. That's a per-machine location. -Original Message- From: Wesley Manning [mailto:wmann...@dynagen.ca] Sent: Monday, January 27, 2014 7:54 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper So per users can installer to C:\Program Files\ ? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 6:45 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper No I did not set ALLUSERS directly. On Fri, Jan 24, 2014 at 2:32 PM, Rob Mensching r...@robmensching.com wrote: Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
I'm not writing a per user package. I was just curious. -Original Message- From: Blair Murri [mailto:os...@live.com] Sent: January-28-14 6:05 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper If your MSI package is always per-user, why wouldn’t you just retrieve and use the path of FOLDERID_UserProgramFiles instead of ProgramFilesFolder? Blair From: Sascha Sertel Sent: Monday, January 27, 2014 10:58 AM To: General discussion for Windows Installer XML toolset. With MSIINSTALLPERUSER=1 on Windows 7 and above the ProgramFilesFolder location gets automatically rerouted to LocalAppDataFolder if running a per-User install. This MSDN article shows where all the folder locations point to in per-machine vs. per-user installs: http://msdn.microsoft.com/en-us/library/windows/desktop/dd765197(v=vs.85).aspx // Sascha On Mon, Jan 27, 2014 at 8:46 AM, Rob Mensching r...@robmensching.com wrote: No. That's a per-machine location. -Original Message- From: Wesley Manning [mailto:wmann...@dynagen.ca] Sent: Monday, January 27, 2014 7:54 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper So per users can installer to C:\Program Files\ ? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 6:45 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper No I did not set ALLUSERS directly. On Fri, Jan 24, 2014 at 2:32 PM, Rob Mensching r...@robmensching.com wrote: Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
So per users can installer to C:\Program Files\ ? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 6:45 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper No I did not set ALLUSERS directly. On Fri, Jan 24, 2014 at 2:32 PM, Rob Mensching r...@robmensching.com wrote: Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
No. That's a per-machine location. -Original Message- From: Wesley Manning [mailto:wmann...@dynagen.ca] Sent: Monday, January 27, 2014 7:54 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper So per users can installer to C:\Program Files\ ? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 6:45 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper No I did not set ALLUSERS directly. On Fri, Jan 24, 2014 at 2:32 PM, Rob Mensching r...@robmensching.com wrote: Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
With MSIINSTALLPERUSER=1 on Windows 7 and above the ProgramFilesFolder location gets automatically rerouted to LocalAppDataFolder if running a per-User install. This MSDN article shows where all the folder locations point to in per-machine vs. per-user installs: http://msdn.microsoft.com/en-us/library/windows/desktop/dd765197(v=vs.85).aspx // Sascha On Mon, Jan 27, 2014 at 8:46 AM, Rob Mensching r...@robmensching.com wrote: No. That's a per-machine location. -Original Message- From: Wesley Manning [mailto:wmann...@dynagen.ca] Sent: Monday, January 27, 2014 7:54 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper So per users can installer to C:\Program Files\ ? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 6:45 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper No I did not set ALLUSERS directly. On Fri, Jan 24, 2014 at 2:32 PM, Rob Mensching r...@robmensching.com wrote: Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out this theory, but if anybody already knows the answer that would be even better. I'll post another reply with my findings once I'm done. The only other alternative I see is using some other means like a simple batch file to execute multiple bundles in series, that way I would have one bundle with .NET and C++ runtime in it which would run per-machine or just the MSIs for those without a bundle, and then another bundle with my per-user software MSI. Not ideal especially for issues and error conditions, but better than asking my end-user to run a couple of MSIs manually. // Sascha -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7592050.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out this theory, but if anybody already knows the answer that would be even better. I'll post another reply with my findings once I'm done. The only other alternative I see is using some other means like a simple batch file to execute multiple bundles in series, that way I would have one bundle with .NET and C++ runtime in it which would run per-machine or just the MSIs for those without a bundle, and then another bundle with my per-user software MSI. Not ideal especially for issues and error conditions, but better than asking my end-user to run a couple of MSIs manually. // Sascha -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7592050.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.comwrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out this theory, but if anybody already knows the answer that would be even better. I'll post another reply with my findings once I'm done. The only other alternative I see is using some other means like a simple batch file to execute multiple bundles in series, that way I would have one bundle with .NET and C++ runtime in it which would run per-machine or just the MSIs for those without a bundle, and then another bundle with my per-user software MSI. Not ideal especially for issues and error conditions, but better than asking my end-user to run a couple of MSIs manually. // Sascha -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7592050.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
Peruser can't install to C:\Program Files\. That's a per machine location. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 4:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.comwrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out this theory, but if anybody already knows the answer that would be even better. I'll post another reply with my findings once I'm done. The only other alternative I see is using some other means like a simple batch file to execute multiple bundles in series, that way I would have one bundle with .NET and C++ runtime in it which would run per-machine or just the MSIs for those without a bundle, and then another bundle with my per-user software MSI. Not ideal especially for issues and error conditions, but better than asking my end-user to run a couple of MSIs manually. // Sascha -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-pur pose-installer-ALLUSERS-2-and-Bootstrapper
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I think Vista maybe but I think windows 7 doesn't do that. Don't quote me. I just vaguely remember reading something about that. Maybe someone else can chime in. Wes -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 4:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.comwrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out this theory, but if anybody already knows the answer that would be even better. I'll post another reply with my findings once I'm done. The only other alternative I see is using some other means like a simple batch file to execute multiple bundles in series, that way I would have one bundle with .NET and C++ runtime in it which would run per-machine or just the MSIs for those without a bundle, and then another bundle with my per-user
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
I think I figured it out! Typing up what I've done so far helped :-) I had tried out so many things that I hadn't noticed I accidentally dropped the MSIINSTALLPERUSER Property at some point. Putting back Property Id=MSIINSTALLPERUSER Value=1 / in my software package resolved the elevation issues in the bundle and .NET Framework and C++ Runtime install fine as well as my user software package. Yay! On Fri, Jan 24, 2014 at 12:52 PM, Wesley Manning wmann...@dynagen.cawrote: My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I think Vista maybe but I think windows 7 doesn't do that. Don't quote me. I just vaguely remember reading something about that. Maybe someone else can chime in. Wes -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 4:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.comwrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out this theory, but if anybody already knows the answer that would be even better. I'll post another reply with my findings once I'm done. The only other alternative I see is using some other means like a simple batch file to execute multiple bundles in series, that way I would have one bundle with .NET and C++ runtime in it which would run per-machine or just the MSIs for those
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
If you really want a per-user package, it's easier to just set Package/@InstallScope='perUser' and remove the ALLUSERS and MSIINSTALLPERUSER properties completely. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 1:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I think I figured it out! Typing up what I've done so far helped :-) I had tried out so many things that I hadn't noticed I accidentally dropped the MSIINSTALLPERUSER Property at some point. Putting back Property Id=MSIINSTALLPERUSER Value=1 / in my software package resolved the elevation issues in the bundle and .NET Framework and C++ Runtime install fine as well as my user software package. Yay! On Fri, Jan 24, 2014 at 12:52 PM, Wesley Manning wmann...@dynagen.cawrote: My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I think Vista maybe but I think windows 7 doesn't do that. Don't quote me. I just vaguely remember reading something about that. Maybe someone else can chime in. Wes -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: January-24-14 4:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a C++ per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET Framework, that would solve most of this issue. I say most because I also need to install the C++ runtime, but for now I could resort to deploy the C++ DLLs locally with my app instead of using the merge module. I'm looking at some of the managed bootstrapper tutorials and blob posts right now and will slap something together to try out
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a C++ per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed one that gets launched after. If the inner managed bootstrapper is capable of doing a regular per-user install after the outer native bootstrapper installs the .NET
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
No I did not set ALLUSERS directly. On Fri, Jan 24, 2014 at 2:32 PM, Rob Mensching r...@robmensching.com wrote: Did you have ALLUSERS set the whole time as well? -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 2:21 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I always had Package/@InstallScope='perUser', that never changed. But the key thing for me to get it to work was MSIINSTALLPERUSER=1, without it I kept getting the insufficient privileges error both in the bundle and when running the stand-alone MSI. // Sascha On Fri, Jan 24, 2014 at 1:34 PM, Rob Mensching r...@robmensching.com wrote: Burn does lots of work to make this scenario work (per-machine prerequisites and one or more per-user packages). It's unique among bootstrappers because it does it in all the right user contexts and all that. I saw a follow up email from you on a fork of this thread that found the most important thing: You need to make sure your per-user package is truly per-user. The easiest way to do that is to use: Package/@InstallScope='perUser'. -Original Message- From: Sascha Sertel [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 12:18 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Let me clarify a bit to tell you what I'm trying to do, what I've tried, and what I thought isn't currently working: Goal: Build a WiX installer for my software which installs .NET Framework 4.5.1 if needed, C++ Runtime if needed, and my software. My software needs to be installed per-user, i.e. it should go into AppData\Local, not Program Files. My understanding is - To accomplish my goal I need three components: .NET Framework 4.5.1 package (provided by NetFx extension), C++ Runtime merge module, and MSI for my software - The two prerequisites needs to be installed on a per-machine (elevated) level, my software on a per-user level This is what I've tried: Attempt 1. Created a WiX bundle with two packages inside the Chain element: A PackageGroupRef for NetFx451Web, and an MsiPackage that includes my software as well as the C++ merge module. Problem: This wouldn't build because my software Package had InstallScope perUser but apparently the C++ merge module forced ALLUSERS=1 which conflicted with the perUser setting. This problem went away when I took the merge module out of the package. Attempt 2: Created a WiX bundle with three packages inside the Chain element: A PackageGroupRef for NetFx451Web, an MsiPackage for my C++ Runtime merge module (InstallScope perMachine), and an MsiPackage for my software (InstallScope perUser). Problem: When running the resulting bundle it would prompt for elevation (which is fine), then install .NET Framework fine, then install the merge module fine, but throw an error for my perUser package: The installer has insufficient privileges to access this directory: C:\Program Files\product. The installation cannot continue. Log on as administrator or contact your system administrator. My software package uses a folder underneath ProgramFilesFolder as the target folder and I was expecting that on Win7 and up in a per-user install it automatically translates to LocalAppDataFolder instead. I thought from what I had gathered in this thread is that once the bundle gets elevated permissions it will also try to run my software package in forced per machine mode but without elevation, and therefore fails when trying to access the Program Files directory. Your last remark sounds though as if this should work. Please help me understand what I'm doing wrong. // Sascha On Fri, Jan 24, 2014 at 11:14 AM, Rob Mensching r...@robmensching.com wrote: If you package is per-user then Burn handles that correctly. It will elevate only if necessary (i.e installing per-machine prerequisites) and install your per-user package. Burn is *designed* to handle that correctly. -Original Message- From: Sascha [mailto:sascha.ser...@gmail.com] Sent: Friday, January 24, 2014 10:51 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper I just ran into this exact same issue and have been trying to find a suitable solution. I need to install the .NET Framework and also a newer C++ runtime as per-machine prerequisites but my software on a C++ per-user basis. Would using the managed bootstrapper help get around this issue by any chance? My understanding is that using the managed bootstrapper means there are actually two bootstrappers, one that takes care of installing .NET Framework if needed, and then the managed
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
Ah, Ok. So I guess I need to build two bootstrappers: one for per-user and one for per-machine? robmen wrote WiX v3.8 (and probably all the way back to WiX v3.6, maybe further) supports building dual-purpose MSI packages. However, Burn does not support Bundling MsiPackages and making them dual-purpose. It can only install them one way. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7591806.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
No I think he meant 2 MSI's and 1 bootstrapper... -Original Message- From: pjbirch [mailto:peter.bi...@myob.com] Sent: January-15-14 11:01 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Ah, Ok. So I guess I need to build two bootstrappers: one for per-user and one for per-machine? robmen wrote WiX v3.8 (and probably all the way back to WiX v3.6, maybe further) supports building dual-purpose MSI packages. However, Burn does not support Bundling MsiPackages and making them dual-purpose. It can only install them one way. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7591806.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
So I could add logic in the bootstrapper to install either the per-user or per-machine .msi? I was hoping to not have to build two duplicate .msi packages. Could I instead put some logic in the bootstrapper to pass either ALLUSERS=1 or ALLUSERS= to the .msi to do the switching, that way, I could continue to build a single .msi? cheers, Steven Ogilvie wrote No I think he meant 2 MSI's and 1 bootstrapper... -Original Message- From: pjbirch [mailto: peter.birch@ ] Sent: January-15-14 11:01 PM To: wix-users@.sourceforge Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Ah, Ok. So I guess I need to build two bootstrappers: one for per-user and one for per-machine? robmen wrote WiX v3.8 (and probably all the way back to WiX v3.6, maybe further) supports building dual-purpose MSI packages. However, Burn does not support Bundling MsiPackages and making them dual-purpose. It can only install them one way. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7591806.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@.sourceforge https://lists.sourceforge.net/lists/listinfo/wix-users -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@.sourceforge https://lists.sourceforge.net/lists/listinfo/wix-users -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7591809.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
There are lots of implications based on the value of ALLUSERS. Burn doesn't handle all the implications today and thus only supports one way or the other. -Original Message- From: pjbirch [mailto:peter.bi...@myob.com] Sent: Wednesday, January 15, 2014 9:35 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper So I could add logic in the bootstrapper to install either the per-user or per-machine .msi? I was hoping to not have to build two duplicate .msi packages. Could I instead put some logic in the bootstrapper to pass either ALLUSERS=1 or ALLUSERS= to the .msi to do the switching, that way, I could continue to build a single .msi? cheers, Steven Ogilvie wrote No I think he meant 2 MSI's and 1 bootstrapper... -Original Message- From: pjbirch [mailto: peter.birch@ ] Sent: January-15-14 11:01 PM To: wix-users@.sourceforge Subject: Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Ah, Ok. So I guess I need to build two bootstrappers: one for per-user and one for per-machine? robmen wrote WiX v3.8 (and probably all the way back to WiX v3.6, maybe further) supports building dual-purpose MSI packages. However, Burn does not support Bundling MsiPackages and making them dual-purpose. It can only install them one way. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-pur pose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7591806.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg. clktrk ___ WiX-users mailing list WiX-users@.sourceforge https://lists.sourceforge.net/lists/listinfo/wix-users -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg. clktrk ___ WiX-users mailing list WiX-users@.sourceforge https://lists.sourceforge.net/lists/listinfo/wix-users -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/dual-purpose-installer-ALLUSERS-2-and-Bootstrapper-tp7591740p7591809.html Sent from the wix-users mailing list archive at Nabble.com. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper
WiX v3.8 (and probably all the way back to WiX v3.6, maybe further) supports building dual-purpose MSI packages. However, Burn does not support Bundling MsiPackages and making them dual-purpose. It can only install them one way. -Original Message- From: Peter Birch [mailto:peter.bi...@myob.com] Sent: Monday, January 13, 2014 3:50 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] dual-purpose installer (ALLUSERS=2) and Bootstrapper Hi, I'm trying to build a dual-purpose (both per-user and per-machine) package (http://msdn.microsoft.com/en-us/library/dd408068.aspx) using WIX 3.8. I have the following in my package.wxs: Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; RequiredVersion=3.8.1128.0 ?include Configuration.wxi ? Product Id=$(var.ProductId) Name=$(var.ProductName) Language=1033 Version=$(var.ProductVersion) Manufacturer=$(var.CompanyName) UpgradeCode=$(var.UpgradeCode) Package Id=* InstallerVersion=405 Compressed=yes Manufacturer=$(var.CompanyName) Description=$(var.PackageDescription) / Property Id=ALLUSERS Value=2 / Property Id=MSIINSTALLPERUSER Value=1 / ... This seems to have worked when building the .msi (although I had to add an ignore for ICE57 errors). However, when I try to bundle the .msi into a bootstrapper as follows: Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; ?include BundleConfiguration.wxi ? ?define NetFx45MinRelease = 377811? Bundle Name=Blah.Bootstrapper Version=1.0.0.0 Manufacturer=$(var.CompanyName) UpgradeCode=$(var.UpgradeCode) IconSourceFile=..\Assets\Installer_Icon_31x31.ico BootstrapperApplicationRef Id=WixStandardBootstrapperApplication.RtfLicense / Chain MsiPackage SourceFile=..\Blah.Client\bin\$(var.Configuration)\Blah Client.msi Compressed=yes DisplayInternalUI=no Id=Blah.Client Vital=yes / /Chain /Bundle I get the following warning when building the bootstrapper: warning LGHT1133: Bundles require a package to be either per-machine or per-user. The MSI 'C:\Projects\ Installer\WIX\Blah.Client\bin\Debug\Blah Client.msi' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-machine and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. Also, when I try to run the bootstrapper, I get permission errors and it doesn't install as a per-user install. Am I doing something wrong, or does WIX 3.8 not support dual-purpose packages? Regards, Peter This email and any attachment are confidential. If you are not the intended recipient, please notify MYOB by reply email and delete this email. Please note that you must not access or use this email or any information in it. MYOB accepts no liability for viruses in this email or in any attachment to it. -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users