【发布时间】:2014-01-17 07:28:39
【问题描述】:
我在 Visual Studio 2010 中创建了一个安装程序,它写入注册表的 HKCU。它在安装和运行期间都需要管理权限。
现在,当我使用管理权限安装它时,注册表项会从标准帐户写入标准用户的 HKCU 注册表部分。但是当我以管理权限运行它时,它正在从管理员的注册表 HKCU 中读取。
经过大量搜索,我得出的结论是,当您以提升的权限运行程序时,它会搜索提升用户的 HKCU。但是为什么在安装过程中没有发生同样的事情,因为我当时也有管理权限。
根据另一个堆栈溢出question,正在发生相反的事情,即提升安装写入管理员的 HKCU。谁能帮助我如何实现该解决方法。
[注意:我知道将代码更改为从 HKLM 读取和写入,而不是使用 HKCU 可能是最好的解决方案,但对我来说不是。因为最近它从 HKLM 更改为另一个大问题,不能已恢复。]
【问题讨论】:
-
我猜这是一个基于 MSI 的安装程序?我认为您描述的行为可能与 MSI 的预期一样,因为部分安装是在用户上下文中完成的,部分是在管理员上下文中完成的。尝试从提升的命令窗口启动安装程序。
-
@HarryJohnston,您能否提供更多详细信息。我不明白您关于“尝试从提升的命令窗口启动安装程序”的建议。 ://
-
打开开始菜单并输入
cmd,然后输入CONTROL-SHIFT-ENTER。这将打开一个提升的命令窗口。如果您从这里启动 MSI 文件,它可能会将 HKCU 条目放在正确的位置。
标签: windows visual-studio-2010 installation registry user-accounts