如果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