我有两个应用程序客户端A和服务B.A和B都是32位应用程序,运行在32位窗口xp上。 他们几乎完成了以下任务。
1)客户端A调用服务B方法,服务B 在注册表中写入一些值。 2)服务B读取注册表然后做一些工作。
发生了强烈的行为。 对于步骤1),服务B将值写入注册表HKEY_LOCAL_MACHINE \ SOFTWARE \ XX 对于步骤2),它尝试读取HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ xx位置。
用于设置注册表的示例代码
RegistryKey keyx = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(RegPathKey, true);
keyx.SetValue(KeyValue, KeyData, RegistryValueKind.Binary);
它没有将wow6432note传递给路径。
根据我的研究,如果32位应用程序在64位窗口系统上运行,它会将注册表访问重定向到wow6432note。
但在我的情况下,两个应用程序都是32位,窗口系统是32位。 怎么试着读到wow6432note?有任何想法吗?因为VM?
任何人都经历过类似的事情吗?
我已经明白了。我们的代码在两个不同的项目中读写注册表,一个构建配置设置为任何CPU,另一个设置为x86。
然而,它没有意义。因为op系统是32位窗口。理论上它根本不应该从6432note读取或写入。