如果64位Window操作系统中,执行32位程序,对注册表进行增加操作.
比如你代码中写的操作是操作
HKEY_LOCAL_MACHINE/SOFTWARE/HongjunGuo/MyDemo
实际他操作的是
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/HongjunGuo/MyDemo
比如:
我们写了这样一个服务程序。其中安装部分代码中包含如下代码:
RegistryKey key1 = Registry.LocalMachine.CreateSubKey(@"SOFTWARE/HongjunGuo/MyDemo");
if (key1 == null) return;
key1.SetValue("ApplicationPath", Directory.GetCurrentDirectory());
key1.Close();
我们执行如下代码进行安装:
"%SystemRoot%/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe" MyWindowsService.exe
安装后,就会发现上述问题。注册表项不是在你想要得位置。
如果想是你所在的位置,这时候你应该执行
"%SystemRoot%/Microsoft.NET/Framework64/v2.0.50727/InstallUtil.exe" MyWindowsService.exe
比如你代码中写的操作是操作
HKEY_LOCAL_MACHINE/SOFTWARE/HongjunGuo/MyDemo
实际他操作的是
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/HongjunGuo/MyDemo
比如:
我们写了这样一个服务程序。其中安装部分代码中包含如下代码:
RegistryKey key1 = Registry.LocalMachine.CreateSubKey(@"SOFTWARE/HongjunGuo/MyDemo");
if (key1 == null) return;
key1.SetValue("ApplicationPath", Directory.GetCurrentDirectory());
key1.Close();
我们执行如下代码进行安装:
"%SystemRoot%/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe" MyWindowsService.exe
安装后,就会发现上述问题。注册表项不是在你想要得位置。
如果想是你所在的位置,这时候你应该执行
"%SystemRoot%/Microsoft.NET/Framework64/v2.0.50727/InstallUtil.exe" MyWindowsService.exe
本文探讨了在64位Windows操作系统中运行32位应用程序时遇到的注册表路径问题。当尝试将键写入HKEY_LOCAL_MACHINESOFTWARE时,实际上被重定向到了HKEY_LOCAL_MACHINESOFTWAREWow6432Node路径下。文章提供了具体的代码示例及解决方法。
1万+

被折叠的 条评论
为什么被折叠?



