我正在开发一个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
我仍然没有密钥。
我不知道该怎么做,我需要帮助。
答案 0 :(得分:1)
尝试关闭返回的密钥。处理密钥的描述会清除资源,但并不能说它会冲刷它。
RegistryKey key = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\services\eventlog\Application\MyService");
key.Close();