可以从VS2010部署项目手动编写Wow6432Node条目吗?

时间:2011-06-04 20:38:22

标签: c# visual-studio-2010 registry deployment-project

我有一个用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位安装程序,以便:

  • 它被标记为x64安装程序
  • 为了64位进程的利益,它在HKLM/Software/Blablah下写入条目
  • 它写下这些条目的精确副本 HKLM/Software/Wow6432Node/Blablah以便在同一台机器上使用32位进程。

我猜测因为我将安装程序标记为x64,我将被迫为32位系统专门编写另一个单独的安装程序,该系统只写入HKLM/Software/Blablah

1 个答案:

答案 0 :(得分:2)

通常的做法是同时拥有32位和64位安装包。在32位计算机上,您只需运行32位软件包,在64位计算机上运行它们。

尝试自己处理所有注册表和文件重定向是一场噩梦,在64位计算机上安装32位软件包并让系统为您进行重定向要好得多。无论如何,你必须为32位机器生产32位软件包,所以这不是额外的工作。