Wix 默认情况下,每用户MSI未提升-如何显示写入文件夹的提升提示?
我有一个通过WiX构建的MSI,它是针对每个用户的,如果用户有权访问目标文件夹,则不会显示UAC提示。但是,如果目标文件夹位于程序文件中,则会出现“权限不足”的错误Wix 默认情况下,每用户MSI未提升-如何显示写入文件夹的提升提示?,wix,windows-installer,uac,Wix,Windows Installer,Uac,我有一个通过WiX构建的MSI,它是针对每个用户的,如果用户有权访问目标文件夹,则不会显示UAC提示。但是,如果目标文件夹位于程序文件中,则会出现“权限不足”的错误 在目标文件夹不可写的情况下,如何显示提示?它实际上不是这样工作的。每用户安装不应要求提升,也不应写入程序文件,因为这是每台计算机的位置。相反,它应该安装到%LocalAppData%\Programs\Company\Product 请阅读以下内容以了解更多背景信息。适用零件,且零件可能超出范围(根据用户/机器的双重要求): 我知道
在目标文件夹不可写的情况下,如何显示提示?它实际上不是这样工作的。每用户安装不应要求提升,也不应写入程序文件,因为这是每台计算机的位置。相反,它应该安装到%LocalAppData%\Programs\Company\Product 请阅读以下内容以了解更多背景信息。适用零件,且零件可能超出范围(根据用户/机器的双重要求):
我知道这是一条古老的线索,但我想让遇到它的其他人知道这确实是可能的 正如前面的回答中提到的,传统的按用户安装不需要管理员权限。然而,我遇到了一个非常有效的情况,我需要运行一个需要管理员权限的自定义操作。要求我的用户从具有提升权限的命令行启动带有msiexec的MSI似乎不是一个可接受的解决方案 这似乎并不难,但幸运的是,我在中意外地找到了答案: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" />
别忘了给诱惑者下定义。我在我的博客上进一步描述了这一点: