Hi Dave,
To answer your questions:
1. If you .NET application is compiled as "Any CPU", then it will run as x64 on x64 OS and x86 on x86 OS, it doesn't matter where it is installed. The setup project settings will NOT affect this fact. So, on an x64 platform, an "Any CPU" app won't have the *32 suffix.
2. You need to create two MSI packages one for each platform. The "TargetPlatform" setting will affect the way Windows Installer treats folder variables, registries and GAC. To install files to 64-bit special folders, you should use corresponding folders like
Common Files (64-bit),
Program Files (64-bit), or
System (64-bit). Please notice that the setup project will use [ProgramFiles64Folder] variable if the TargetPlatform of the setup project is x64; and [ProgramFilesFolder] for x86. I think that's why you got installed to Program Files (x86) on x64 OS.
A complete story of How to: Create a Windows Installer for a 64-bit Platform
Hope this helps.
Regards,
Jie
MSDN Subscriber Support in Forum
If you have any feedback on our support, please contact msdnmg[at]microsoft.com
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
If you have any feedback, please tell us.
The CodeFx ProjectMy Blog (in Simplified Chinese)