Visual studio 2010 不可靠的行为vs2010即使以管理员身份运行c#.NET 4也能获得HKLM值

Visual studio 2010 不可靠的行为vs2010即使以管理员身份运行c#.NET 4也能获得HKLM值,visual-studio-2010,.net-4.0,c#-4.0,registry,administrator,Visual Studio 2010,.net 4.0,C# 4.0,Registry,Administrator,对于将作为windows服务运行的应用程序 我将设置值存储在HKLM\软件中。。。注册表项 我有一个可以访问注册表值的库 我有一个简单的测试控制台应用程序,用于验证代码是否有效 要通过测试控制台应用程序进行调试,我必须以管理员身份运行vs2010 一切正常: Console.WriteLine(WindowsRegistry.getTaleoOrgCode("test")); 援引 Microsoft.Win32.RegistryKey hklmLocalMachineRoot = Micro

对于将作为windows服务运行的应用程序
我将设置值存储在HKLM\软件中。。。注册表项

我有一个可以访问注册表值的库

我有一个简单的测试控制台应用程序,用于验证代码是否有效

要通过测试控制台应用程序进行调试,我必须以管理员身份运行vs2010

一切正常:

Console.WriteLine(WindowsRegistry.getTaleoOrgCode("test"));
援引

Microsoft.Win32.RegistryKey hklmLocalMachineRoot =
Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey hklmLocalMachineHbsiTaleoClient =
hklmLocalMachineRoot.OpenSubKey(@"SOFTWARE\Taleo\" + clientName.Trim(), false);
 // read only
if (hklmLocalMachineHbsiTaleoClient != null)
通过调试,很明显hklmLocalMachineHbsiTaleoClient不是空的

我有一个应用程序使用上面的库子程序

我也是以管理员的身份在vs2010中启动该应用程序的

通过调试,很明显hklmLocalMachineHbsiTaleoClient为空

在调试之前,我确保失败的应用程序
有我的注册表例程库的最新版本

vs2010 Pro版本在Windows 7下运行


请帮忙,谢谢。

汉斯的评论是正确的,恶魔正在死亡

请参阅我的后续问题:


谢谢。

注意64位Windows版本上的注册表虚拟化。Hans,注册表虚拟化是一种必然的可能性。我只是查了一下;e、 g.:;在一个命令窗口中,“reg flags HKLM\Software\…query”起作用,但在常规和64 vs2010命令窗口中的同一命令(无论是否使用以管理员身份运行)都会得到“错误:系统找不到指定的注册表项或值”。如果查询起作用,所有标志都标记为清除,但带/不带/s开关的SET的同一命令窗口给出“错误:访问被拒绝”。???wierder仍然:从SlickRun开始的regedit显示了我导出的键/值;Windows\System32中的regedt32在我导入键/值之前未显示它们;怀着希望,我重新运行了我的测试,它仍然找不到键/值,尽管人们可能会假设键/值应该同时位于虚拟注册表和非虚拟注册表中。我的点子快用完了。无论如何,我最好的猜测是,这些异常肯定与注册表虚拟化有关。谢谢你的引导。ttyl P.S.:我无法再从SlickRun运行regedit。