以编程方式创建注册表项

时间:2016-12-01 09:54:00

标签: c# registrykey

我正在开发一个C#项目,我对创建注册表项非常困惑。

我有一个Wix安装程序。和设置文件,我正在调用自定义操作来创建子键(我尝试使用wix功能,但它不起作用)。

我的自定义操作是:

RegistryKey Nkey = Registry.LocalMachine;
RegistryKey valkey = Nkey.OpenSubKey(Manager.REGKEY, true); //=> REGKEY = "Software\\MyService"
if (valkey == null)
{
    valkey = Nkey.CreateSubKey(GestionCertificats.REGKEY);
}
valkey.Close();

Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\services\eventlog\Application\MyService");

安装完成后,我可以看到第二个键,但没有第一个键。我不确定正确理解按键的操作。我正在使用Windows 7 64位,我正在使用“任何CPU”进行编译,但我的应用程序似乎是在x86中。

我尝试调试操作。值valkey不为null,但我没有看到带有regedit的密钥。通过强制CreateSubKey我仍然没有密钥。

我不知道该怎么做,我需要帮助。

1 个答案:

答案 0 :(得分:1)

只是一个猜测,因为一切看起来还不错。

尝试关闭返回的密钥。处理密钥的描述会清除资源,但并不能说它会冲刷它。

RegistryKey key = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\services\eventlog\Application\MyService");
key.Close();