C# NET:OpenSubkey()don';无法在注册表中找到值

C# NET:OpenSubkey()don';无法在注册表中找到值,c#,.net,wpf,registry,C#,.net,Wpf,Registry,我在Windows注册表中创建了一些值,并尝试从.NET访问它们,但出现错误 Registry.LocalMachine.OpenSubKey(“软件”).OpenSubKey(“ZvezdnyShop”)为空,但是注册表中有这样一个键 怎么了 回答 我的应用程序是32位的,所以我需要将ZvezdnyShop放在HKLM/Software/Wow6432Node 感谢Frédéric Hamidi屏幕截图中的ZvezdnyShop键驻留在中,因此它仅对64位应用程序可见 因此,如果您的项目针

我在Windows注册表中创建了一些值,并尝试从.NET访问它们,但出现错误

Registry.LocalMachine.OpenSubKey(“软件”).OpenSubKey(“ZvezdnyShop”)为空,但是注册表中有这样一个键

怎么了

回答

我的应用程序是32位的,所以我需要将ZvezdnyShop放在HKLM/Software/Wow6432Node
感谢Frédéric Hamidi

屏幕截图中的
ZvezdnyShop
键驻留在中,因此它仅对64位应用程序可见

因此,如果您的项目针对的是
x86
平台,那么它生成的32位应用程序将看不到该键


要解决该问题,您可以在注册表的32位部分创建注册表项,即
HKLM\SOFTWARE\Wow6432Node\ZvezdnyShop
,或者让您的项目以
x64
平台为目标。

屏幕截图中的
ZvezdnyShop
注册表项位于中,因此它将仅对64位应用程序可见

因此,如果您的项目针对的是
x86
平台,那么它生成的32位应用程序将看不到该键


要解决此问题,您可以在注册表的32位部分创建密钥,即
HKLM\SOFTWARE\Wow6432Node\ZvezdnyShop
,或者让您的项目以
x64
平台为目标。

您的应用程序是否以x86平台为目标?屏幕截图中的
ZvezdnyShop
项位于注册表的64位部分,因此32位应用程序不会看到它,除非它也存在于
Wow6432Node
项下。@Frédéric应该是answer@Soumya92,你可能是对的。我把它作为一个评论,因为它里面有一个问题,但现在我想答案是必要的,这样问题才能得到妥善解决。我会的。也许你的应用程序是针对x86平台的?屏幕截图中的
ZvezdnyShop
项位于注册表的64位部分,因此32位应用程序不会看到它,除非它也存在于
Wow6432Node
项下。@Frédéric应该是answer@Soumya92,你可能是对的。我把它作为一个评论,因为它里面有一个问题,但现在我想答案是必要的,这样问题才能得到妥善解决。我会的。