2

Our company uses WIX for its installers, and we are now upgrading our application from 32-Bit to 64-Bit. For every new version, we always provide an upgrade path from the previous ones.

TODO list :

  • Binaries should now reside in the "C:\Program Files" folder instead of "C:\Program Files (x86)".
  • Registry entries should now reside in HKEY_LOCAL_MACHINE\SOFTWARE\%COMPANY% instead of HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\%COMPANY%
  • Log files, configuration files, and any custom files/registry entries needs to be moved over to their new 64-Bit locations.

Considered the special aspect of this upgrade, we are inquiring the community regarding its know-how.

David Bertrand
  • 311
  • 3
  • 4
  • Change the component GUID for every component with a new key path. Check this post for explanation: http://stackoverflow.com/a/1422121/129130 – Stein Åsmul Jun 27 '14 at 15:49
  • 1
    This might be useful, see ProgramFiles64Folder etc. http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx – PhilDW Jun 27 '14 at 17:31

1 Answers1

3

Presumably you'll continue to have a 32bit MSI for 32bit customers. So I'd approach this was another MSI and reuse as many fragments as possible. Your directory table and ComponentIDs will be different and I'd also give it a different UpgradeCode GUID. In your MajorUpgrade I'd search for products having the 32bit UpgradeCode and the 62bit UpgradeCode and remove both when found.

I'd also make sure that you need to even do this. For example if I deploy a .NET app with no native dependencies ( say IIS, Winforms, WPF, Windows Service ) it'll JIT up 64bit no problem when possible even though I installed it using a 32bit MSI to 64bit locations. No harm no foul.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100