我有一个用C#编写的.NET组件,需要在HKLM配置单元下注册一些注册表值。我希望这个组件可以安装在运行适当Windows风格的x86(32位)和x64(64位)盒子上。在64位系统上,我想确保32位和64位主机进程都可以使用该组件。我暂时停止使用Visual Studio的部署项目。
我想要的是我的安装程序,当在64位系统上运行时,将其注册表项放在HKLM/Software/Blablah
下,这样当在64位进程中运行时,我的组件可以找到其全局配置设置。但是,如果我的组件由在同一台机器上运行的32位进程托管,那么它将从它认为是相同的密钥读取,但是哪个Wow64将转换为HKLM / Software / Wow6432Node / Blablah。
是否可以编写我的64位安装程序,以便:
HKLM/Software/Blablah
下写入条目HKLM/Software/Wow6432Node/Blablah
以便在同一台机器上使用32位进程。我猜测因为我将安装程序标记为x64,我将被迫为32位系统专门编写另一个单独的安装程序,该系统只写入HKLM/Software/Blablah
。
答案 0 :(得分:2)
通常的做法是同时拥有32位和64位安装包。在32位计算机上,您只需运行32位软件包,在64位计算机上运行它们。
尝试自己处理所有注册表和文件重定向是一场噩梦,在64位计算机上安装32位软件包并让系统为您进行重定向要好得多。无论如何,你必须为32位机器生产32位软件包,所以这不是额外的工作。