我的应用程序是使用" 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]
和regsitry路径来解决纠正位置是不值得的.只要我的程序仍然运行在64位Windows 64位,我真的不关心它安装在"C:\ Program Files文件(x86)的"默认情况下,有些注册表值的存在Wow6432Node
.
所以,我的问题是,是否有其他的后果,当我安装在64位Windows使用其他32位微星"AnyCPU"程序不是默认安装目录为"C:\ Program Files文件(x86)的",有的注册表值存储在Wow6432Node
?
唯一可能出现的真正危害是您的程序尝试读取存储在 32 位注册表视图中的值。当然,当作为 64 位进程运行时,它将无法找到它们。如果发生这种情况,您可以简单地使用RegistryView 枚举来强制从32 位视图读取。但我猜你提到的注册表设置与安装程序有关。
事实上,您描述的场景就是我部署应用程序的方式。因为我将 32 位和 64 位版本部署到同一台计算机,并且它们共享一些文件,所以我将所有内容安装到 32 位程序文件中。然后所有注册表访问都针对 32 位视图。如果您希望 32 位和 64 位版本在注册表的重定向部分共享相同的值,那么确实没有其他选择。
归档时间: |
|
查看次数: |
779 次 |
最近记录: |