在winserver 2003上安装winform应用程序时无法读取注册表



我正在制作一个基于c#的win form应用程序。部署时,它将其安装位置写入注册表。现在有一个单独的插件,在部署期间在注册表中查找此值。

现在我遇到的问题是,它在我的32位win 7开发盒上工作得很好。但是在客户端的64位win2003服务器上,主机应用程序能够写入注册表值,但插件从注册表中获得空字符串。其中一个问题可能是无法在服务器上找到注册表。

有什么想法可能是问题,我该如何解决?

在32位上,注册表项将是这样的:

HKEY_LOCAL_MACHINESOFTWAREMyCompany

在64位的情况下,注册表项是这样的:

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMyCompany

我猜插件可能需要更新/配置(取决于你如何使用它)来支持64位。

64位版本的Windows通过"Windows上的Windows" (WoW)子系统模拟32位功能。在注册表的情况下,出于兼容性原因,他们将32位键移到一个特殊的子键。

64位操作系统上32位软件的密钥将在:HKEY_LOCAL_MACHINESOFTWAREWow6432Node .

这是将system32映射到SysWOW64的文件系统重定向器的注册表模拟。

有关注册表重定向的更多详细信息可在MSDN主题中找到。

最新更新