.net32位程序与64位程序

本文探讨了在64位Windows操作系统中运行32位应用程序时遇到的注册表路径问题。当尝试将键写入HKEY_LOCAL_MACHINESOFTWARE时,实际上被重定向到了HKEY_LOCAL_MACHINESOFTWAREWow6432Node路径下。文章提供了具体的代码示例及解决方法。
如果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
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值