No announcement yet.

Installing a mix of 32bit and 64bit programs with a 64bit installer

  • Filter
  • Time
  • Show
Clear All
new posts

  • Installing a mix of 32bit and 64bit programs with a 64bit installer


    I have a 64bit installer and want to install a mix of 64bit and 32bit programs. I set the "%AppFolder%" in the Session Variables to "%ProgramFilesFolder64%\My Program" for the 64bit progs to be installed in - say "C:\Program Files\My Program", but I have no idea how to move the 32bit progs to "C:\Program Files (x86)\My Program".

    Any hint is appreciated.


  • #2
    It is easier if you do it the other way around, creating a 32-bit installer to deploy both 32-bit and 64-bit files. With the aid of the Wow64 plugin, you can reach the folders and registry reserved for 64-bit apps as needed.



    • #3
      Hi Ulrich,

      many thanks for this. I'll look into it.



      • #4
        In my case i have to install a 64bit application, but i have to add some files in the "CommonFilesDir (x86)"
        I decided to create a Session Variable %CommonX86Folder% and at the startup read the path for the "CommonFilesDir (x86)" using the Registry

        reg_data = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion" , "CommonFilesDir (x86)", true);
        SessionVar.Set("%CommonX86Folder%", reg_data);

        Do you see any Contraindication in doing this?
        Thanks in Advance


        • #5
          I'm in the same scenario. I have a partly 32bit and partly 64bit distribution currently but require a 64bit installer (which is why I'm using SUF). I'm still in the implementation phase so I can't guarantee it works but my current plan is to simply install the 32bit components into the \Program Files\ folder.

          I had previously considered just having both a 32bit installer for the legacy stuff (all my 32bit stuff won't be upgraded to 64bit) alongside a 64bit installer. I then included the 32bit installer as a Primer File for the x64 installer and had it execute it. This worked for installing automatically into the correct Program Files folders but I decided I didn't want to mess with that complexity so I moved everything back into my x64 installer.

          I'm curious though. Is there a reason you require your 32bit stuff to be in the x86 directories?


          • #6
            Well, the reason is that the 64bit application uses some old 32 bit services already present on the target machine (in the CommonFilesDir (x86)) , but some "component" files to use them
            must be added by my application in the same places where the old services are.
            By the way i tried and reading the registry seems to work properly, just would like to know is this is a bad practice or not.


            • #7
              I am also in the same situation. It seems like I have to set SF to be for a 64 bit platform in order for the SQL Server Express 2012 SP1 dependency module to work (I got 64 bit SQL Server installed on 64 bit Win 10), but our app being installed is 32 bit, so we want it to go into Program Files (x86). So is there any good solution for us, besides hard coding the Program Files path?


              • #8
                You should build a 32-bit installer, if your product is a 32-bit binary. And a 32-bit setup can install a 64-bit dependency... Of course, there could be an issue with the dependency's code, who knows. More details would be required.

                Last edited by Ulrich; 01-31-2020, 05:19 PM.