我的应用程序是使用“ 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
?