VS 2005安装 - HKCU

时间:2009-11-11 22:03:00

标签: c# visual-studio-2005 windows-installer installation

我正在尝试修复使用Visual Studio 2005安装项目的现有应用程序。

我们要求它在XP的有限用户帐户上工作,我们的应用程序是用C#编写的.Net 2.0。

它在设置过程中将密钥写入HKCU,但跳过用户界面选择“为所有人安装”与“只是我”的步骤。所以它默认为Everyone安装。

问题是,您在管理员帐户上安装,然后切换到受限帐户。这使得它执行失败的修复安装。如果我去任何其他管理员帐户,它的工作正常。

我的问题是,有限的帐户是否正在尝试读/写,将这些密钥放在HKCU的哪个位置?

HKEY_USERS中有一个神奇的地方适用于“每个人”吗?我不明白它是如何工作从管理员用户到另一个管理员用户。为了测试这个理论,我在有限的用户手动输入HKCU的密钥,它仍然试图修复。

如果我知道“Everyone”密钥的位置,我只能通过自定义操作授予所有用户完全访问权限,因此受限制的帐户不会强制进行修复安装。

2 个答案:

答案 0 :(得分:1)

HKEY_USERS\.DEFAULT\  

你正在寻找的分支?

答案 1 :(得分:1)

没有“Everyone”HKCU键这样的东西。 HKCU 按用户。 Windows Installer将始终尝试修复,除非每个人都可以访问原始MSI文件,否则它可能会失败。

基本上我经常遵循的经验法则是永远不要在安装期间写入HKCU,而是在安装期间写入HKLM,并且第一次运行应用程序然后创建相关的{{ 1}}键。

请参阅我在SO问题Launching a program in different creds or HKCU and installers上的回答,并查看ActiveSetup作为编写相关HKCU配置的可行替代方案。