InstallShield 2010 Installs to Program Files (x86) when Program Files (64-bit) selected
-
10-02-2021 - |
سؤال
I have a very basic InstallShield installer. It drops a bunch of tiles to TARGETDIR. If I specify the destination directory as almost any directory, that's where the files get dropped. (eg. if I specify C:\temp, that's where the files appear.)
The weird thing is, if I specify a subdirectory under "Program Files (x86)" as the destination directory, the files get installed to "Program Files". I am (obviously) on a 64-bit machine.
Is this a bug in InstallShield? Is there a work-around for this? I know if my clients (consumers of the installer) will have to install this to Program Files or x86-specific Program Files (it's supposed to be dropped into an existing application's directory).
Ideally, there's a registry key on the client machine indicating where to install my stuff to; if I can just leverage that, that's exactly what I want to do.
المحلول
It turns out my components are set to install to ProgramFiles
. I needed to change them to install to ProgramFiles64
. To do this:
- Go to your Components view (Installation Designer)
- Click on each component one by one
- Under
General
, look for64-Bit Component
and change it toYes
That resolved it.
نصائح أخرى
Usually 64-bit packages use the 64-bit locations. So even if you somehow managed to install a 64-bit package in "Program Files (x86)", it would be incorrect and illogical.
On a 64-bit machine "Program Files" is used by 64-bit products and "Program Files (x86)" by 32-bit products. You can read more about this here:
- http://msdn.microsoft.com/en-us/library/aa372396(VS.85).aspx
- http://msdn.microsoft.com/en-us/library/aa384274(VS.85).aspx
So if you want to install in "Program Files (x86)", you can use a 32-bit package.
Regarding your actual question, most likely InstallShield or Windows is redirecting your application files to the correct location.