アプリケーションは " Any CPU
" 構成を使用して構築されています。アプリケーションの WIX インストーラーは で構築されてplatform=x86
いるため、結果の MSI は 32 ビットです。
64 ビット Windows で 32 ビット MSI を実行すると。プロパティは「[ProgramFilesFolder]
C:\Program Files (x86)」に解決され、レジストリ パスはWow6432Node
. アプリケーションを実行すると、プロセスは予想どおり 64 ビットです。
SOに関する多くの関連記事を読んだ後、私が理解している限り。64 ビット Windows では、[ProgramFilesFolder]
を「C:\Program Files」に解決し、レジストリ パスを通常のパス ( の下ではないWow6432Node
) にします。別の 64 ビット MSI が必要です。私が回避しようとしているもの - 私にとっては、別の 64 ビット MSI[ProgramFilesFolder]
とレジストリ パスを正しい場所に解決するだけの価値はありません。私のプログラムが 64 ビット Windows で 64 ビットを実行する限り、デフォルトで「C:\Program Files (x86)」にインストールされ、いくつかのレジストリ値が に存在するかどうかはあまり気にしませんWow6432Node
。
それで、私の質問は、32ビットMSIを使用して64ビットWindowsに「AnyCPU」プログラムをインストールすると、デフォルトでinstallDirが「C:\ Program Files(x86)」であり、いくつかのレジストリ値はWow6432Node
? の下に保存されます。