我有一个通过WiX构建的MSI,它是每个用户,如果用户拥有目标文件夹的权限,则不显示UAC提示。但是,如果目标文件夹位于Program Files中,则会出现“Insuficient privileges”错误。
如果目标文件夹不可写,如何显示UAC提示?
答案 0 :(得分:4)
它并没有真正起作用。每用户安装应该永远不需要提升,并且永远不应该写入Program Files,因为这是每个机器的位置。相反,它应安装到%LocalAppData%\ Programs \ Company \ Product。
阅读以下内容以获取更多背景信息。零件适用,零件可能超出范围(双用户/每机器要求):
Authoring a single package for Per-User or Per-Machine Installation context in Windows 7
答案 1 :(得分:0)
我知道这是一个旧帖子,但我想让其他遇到它的人确实有可能。
正如前面的回答中所提到的,传统的每用户安装不应该要求管理员权限。但是,我遇到了一个非常有效的情况,我需要运行需要管理员权限的自定义操作。要求我的用户使用msiexec从具有提升权限的命令行启动MSI似乎不是一个可接受的解决方案。
这似乎不应该这么困难,但幸运的是我偶然发现this post中的答案:Package / @ InstallScope属性不支持每用户,提升的包!所以只需在包定义中省略它:
<!-- NOTE: If you need to create a per-user installation (meaning it's not -->
<!-- visible in Add/Remove Programs from other logons) that prompts for -->
<!-- elevation, omit both the Package/@InstallPrivileges="elevated" and
<!-- Package/@InstallScope="perUser". -->
<Package InstallerVersion="200" Compressed="yes" />
不要忘记将ALLUSERS定义为未定义。我在博客上进一步描述了这一点: