我有一个用 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 安装程序
HKLM/Software/Blablah
它为了 64 位进程的利益而写下条目HKLM/Software/Wow6432Node/Blablah
为了在同一台机器上运行 32 位进程,它会在下写入这些条目的精确副本 。
我猜是因为我已将安装程序标记为 x64,我将被迫为 32 位系统编写另一个单独的安装程序,它只写入HKLM/Software/Blablah
.