我正在尝试修复使用Visual Studio 2005安装项目的现有应用程序。
我们要求它在XP的有限用户帐户上工作,我们的应用程序是用.Net 2.0的C#编写的。
它在安装过程中将密钥写入HKCU,但跳过了选择“为每个人安装”而不是“只有我”的UI步骤。所以它默认为每个人安装。
问题是,您使用管理员帐户进行安装,然后切换到受限帐户。这会使它执行失败的修复安装。如果我转到任何其他管理员帐户,它都工作得很好。
我的问题是,受限帐户正在尝试读/写的HKCU的这些密钥放在哪里?
在HKEY_USERS中,有没有一个神奇的地方适用于“每个人”?我不明白它是如何工作的从管理员用户到另一个管理员用户。为了验证这一理论,我在HKCU中手动输入了受限用户的密钥,但它仍在尝试修复。
如果我知道这个"Everyone“密钥在哪里,我可以通过一个自定义操作向所有用户授予完全访问权限,这样受限帐户就不会强制进行修复安装。
发布于 2009-11-12 11:57:30
没有"Everyone“HKCU密钥这回事。HKCU按用户计算。Windows Installer将始终尝试修复,除非每个人都有权访问原始MSI文件,否则修复可能会失败。
基本上,我一直遵循的经验法则是在安装过程中永远不要写入HKCU,而是在安装过程中写入HKLM,然后在应用程序第一次运行时创建相关的HKCU密钥。
请参阅SO问题Launching a program in different creds or HKCU and installers上的我的答案,并查看ActiveSetup作为编写相关HKCU配置的可行替代方案。
发布于 2009-11-12 06:11:09
是
HKEY_USERS\.DEFAULT\ 你要找的分支机构?
https://stackoverflow.com/questions/1718373
复制相似问题