Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 默认情况下,每用户MSI未提升-如何显示写入文件夹的提升提示?_Wix_Windows Installer_Uac - Fatal编程技术网

Wix 默认情况下,每用户MSI未提升-如何显示写入文件夹的提升提示?

Wix 默认情况下,每用户MSI未提升-如何显示写入文件夹的提升提示?,wix,windows-installer,uac,Wix,Windows Installer,Uac,我有一个通过WiX构建的MSI,它是针对每个用户的,如果用户有权访问目标文件夹,则不会显示UAC提示。但是,如果目标文件夹位于程序文件中,则会出现“权限不足”的错误 在目标文件夹不可写的情况下,如何显示提示?它实际上不是这样工作的。每用户安装不应要求提升,也不应写入程序文件,因为这是每台计算机的位置。相反,它应该安装到%LocalAppData%\Programs\Company\Product 请阅读以下内容以了解更多背景信息。适用零件,且零件可能超出范围(根据用户/机器的双重要求): 我知道

我有一个通过WiX构建的MSI,它是针对每个用户的,如果用户有权访问目标文件夹,则不会显示UAC提示。但是,如果目标文件夹位于程序文件中,则会出现“权限不足”的错误


在目标文件夹不可写的情况下,如何显示提示?

它实际上不是这样工作的。每用户安装不应要求提升,也不应写入程序文件,因为这是每台计算机的位置。相反,它应该安装到%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" />

别忘了给诱惑者下定义。我在我的博客上进一步描述了这一点: