C# 在Windows7c上访问注册表#
我试图制作一个更新程序,当更新时,它会将一个版本号写入Windows7注册表,主程序在检查更新时会读取该注册表。我在微软的页面上浏览了UAC虚拟化知识库,但什么也没找到。我的app.manifest已被删除C# 在Windows7c上访问注册表#,c#,windows-7,registry,C#,Windows 7,Registry,我试图制作一个更新程序,当更新时,它会将一个版本号写入Windows7注册表,主程序在检查更新时会读取该注册表。我在微软的页面上浏览了UAC虚拟化知识库,但什么也没找到。我的app.manifest已被删除 <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> 有什么想法/建议吗?如果您的应用程序针对x86平台,在x64系统上运行时,它将使用具有以下名称的相应注册表节点: HKEY_LOCAL_
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
有什么想法/建议吗?如果您的应用程序针对x86平台,在x64系统上运行时,它将使用具有以下名称的相应注册表节点: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\或HKEY_CURRENT_USER\SOFTWARE\Wow6432Node 因此,如果为构建将平台目标设置为x86,则在x86系统上,它将处于HKEY_LOCAL_MACHINE\软件下,而在x64系统上,它将处于HKEY_LOCAL_MACHINE\软件\Wow6432Node下,这是在WOW64(Windows 64位上的Windows 32位)模式下运行的应用程序的保留节点
有关更多信息,请参见构建目标平台是什么?x86、x64或任何CPU?当你说它不在
HKEY_用户
中时,你的意思是它不在HKCU\Software
中,或者不在UAC虚拟化区域?为x86构建的@本·沃格特——这两种语言都不适用。我在更新程序运行时检查了这两个选项。如果您在64位环境中运行,请检查以下位置。HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\…好的,找到注册表项,谢谢!现在还有一个问题。如果其他人在x86或x64上使用更新程序,它会去同一个地方吗?
Registry.LocalMachine.CreateSubKey("SOFTWARE\\build");
RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\build", true);
myKey.SetValue("build", "3", RegistryValueKind.String);