Hello James, Is there any reason why you do not use the Package Platform=x64 or package Platform=x86? It is my understanding that you would not need to explicitly reference ProgramFiles64Folder if this is set to x64.
If you want to be able to upgrade between 64-bit and 32-bit versions of your product, I would use a bootstrapper. In the bootstrapper check to see if the HKLM\Software\Wow6432Node exists. If it does you can pretty sure that you are on a 64-bit system. You can then check the HKLM\SOFTWARE\[YourCompany] for the existence of a 64-bit version or HKLM\SOFTWARE\Wow6432Node\[Your Compahy] for the existence of your 32-bit version. (On a 32-bit system you just check under HKLM\SOFTWARE\[Your Company] What I do in my installer is to write entries into the registry during installation and any change operations to save things such as the ProductCode, UpgradeCode, Location where product was installed and Features that have were installed. In some cases, where it is appropriate, I let the MSI do the upgrade like you do. In other cases, I retrieve the current settings of the product and remove the existing product and then drive MSIEXEC directly. I pass the information that I retrieved from the registry to the installer via public properties. I let the bootstrapper modify any of these properties if they are going to change. I have not implemented a 64-bit installer but we do have another product in our company that come in a 32-bit and 64-bit flavor. I use this logic to detect the presence of absence of the appropriate version. This technique lets me upgrade/downgrade between different versions of our product that are packaged with different UpgradeCodes. This is a little kludgy and rather brute-force but it is simple and effective. Durwin Wright | Sr. Architect | durwin.wri...@ingres.com | Ingres | 500 Arguello Street | Suite 200 | Redwood City | CA | 94063 | USA +1 650-587-5523 | fax: +1 650-587-5550 | "Wag the Dog" -----Original Message----- From: Blair [mailto:os...@live.com] Sent: Monday, May 09, 2011 4:29 PM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] 32-Bit < > 64-Bit Are you using the same UpgradeCode? Blair -----Original Message----- From: James Robertson [mailto:ja...@osodata.com] Sent: Friday, May 06, 2011 4:58 AM To: WiX Subject: [WiX-users] 32-Bit < > 64-Bit Hi, I have an existing installer for a 32-bit application that has been working fine for the last year or so. I am now looking at adding a second installer (users will download the 32-bit or 64-bit installer, I'm not planning on having a single installer decide which version to install) based on the same script that can install a 64-bit version of my application. I have something that almost works, but am stuck on a few things. The current 32-bit installer drops executable files in Program Files (x86) and some common data files in ProgramData. These folders are cleaned up as part of the uninstall procedure as long as they're empty (new files can be added by the user to the ProgramData folder, and these will remain across upgrades). The new 64-bit installer is supposed to drop executable files in Program Files and the same data files in Program Data. The existing installer always uninstalls any previous version before installing the new one (so users can downgrade if I screw up) and I am trying to make the 64-bit version function in the same way. Ideally the installer will treat any existing install 32-bit or 64-bit in the same say regardless of their actual install paths, I.e., providing the version number is different, the previously installed version will be uninstalled before the new version is installed. >From what I can see, installing and uninstalling a 64-bit version on a clean machine works. I am going to go one step further and assume that upgrading 64-bit to 64-bit also works. The problems I have are as follows: 1) When I install the 64-bit version when a 32-bit installation is already present, the 32-bit version isn't uninstalled. So while the 64-bit version is installed in Program Files there is no shortcut to it, nor is there any way to uninstall it (the 32-bit version is still listed in Programs and Features). 2) When I install the 32-bit version when a 64-bit installation is already present, the 64-bit version is not correctly removed, but the start menu shortcut and uninstall link in Programs and Features now reference the 32-bit version. So, how is this scenario supposed to be implemented? Are there any decent tutorials or references on how to implement this upgrade scenario correctly? The current installer script as it stands can be viewed here: James ------------------------------------------------------------------------ ---- -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users