C# Registry.CurrentUser为空
我正在使用以下属性设置/读取代码中的注册表值。然而,在这一行中:C# Registry.CurrentUser为空,c#,.net,registry,C#,.net,Registry,我正在使用以下属性设置/读取代码中的注册表值。然而,在这一行中: RegistryKey regKey = Registry.CurrentUser; regKey为空。这只发生在少数机器上。有什么想法吗 RegistryKey regRPP = Registry.CurrentUser.CreateSubKey(@"Software\Softech\FaceReader"); //这是它将创建的路径 regRPP.SetValue("FaceReaderURL", "http://loca
RegistryKey regKey = Registry.CurrentUser;
regKey为空。这只发生在少数机器上。有什么想法吗
RegistryKey regRPP = Registry.CurrentUser.CreateSubKey(@"Software\Softech\FaceReader");
//这是它将创建的路径
regRPP.SetValue("FaceReaderURL", "http://localhost/pnm/v4_spp/");
//这是它将创建的路径
regRPP.SetValue("FaceReaderURL", "http://localhost/pnm/v4_spp/");
可能是权限问题-运行应用程序的登录用户可能没有读取注册表的权限,因此它返回null?如果在Windows 7上运行,请尝试要求用户以管理员身份运行应用程序(右键单击->以管理员身份运行),看看这是否有帮助。否,是Windows Xp,我也尝试过以管理员用户身份模拟。仍然有错误。你说它发生在“少数机器”-什么机器?全部XP?可能是64位问题?我们需要找到所有这些机器的共同点,以获得良好的潜在客户。如果当前用户(!)无法访问HKEY_current_用户配置单元,这似乎很奇怪。很多(甚至非管理员)应用程序都无法工作。通过反射器查看,似乎
CurrentUser
是由new
-指令直接初始化的,因此它几乎不可能为null
。静态ctor中的某个地方更可能出现异常。可能是权限问题-运行应用程序的登录用户可能没有读取注册表的权限,因此它返回null?如果在Windows 7上运行,请尝试要求用户以管理员身份运行应用程序(右键单击->以管理员身份运行),看看这是否有帮助。否,是Windows Xp,我也尝试过以管理员用户身份模拟。仍然有错误。你说它发生在“少数机器”-什么机器?全部XP?可能是64位问题?我们需要找到所有这些机器的共同点,以获得良好的潜在客户。如果当前用户(!)无法访问HKEY_current_用户配置单元,这似乎很奇怪。很多(甚至非管理员)应用程序都无法工作。通过反射器查看,似乎CurrentUser
是由new
-指令直接初始化的,因此它几乎不可能为null
。静态ctor中的某个地方发生异常的可能性更大。如果Registry.CurrentUser
真的是null
(正如OP所说),第一个语句将抛出NullReferenceException
。有趣的是,它没有抛出异常,而且它工作正常。令人惊讶的如果registry.CurrentUser
确实是null
(正如OP所说)第一条语句将抛出一个NullReferenceException
,它将自动创建注册表路径。有趣的是,它没有抛出异常,它成功了。令人惊讶的它将自动创建该注册表路径