我们有一个x86 Win32桌面应用程序。当标准(非管理员)用户运行安装程序时,我们会避免提升和/或显示UAC提示并安装在C:\Users\username\AppData\Roaming\...
而不是公共Program Files
目录下。
在Windows 10上,当我们从Control Panel -> Programs -> Programs and Features
启动卸载程序时,不会显示UAC提示符,并且卸载程序会在不提升的情况下运行。这是期望的行为。从Start -> Settings -> System -> Apps & features
启动相同的卸载程序时,会显示UAC提示符。
(在Opera浏览器安装程序/卸载程序中可以看到相同的行为。我测试了v35.0.2066.37。)
为什么从Apps & features
与Programs and Features
启动时,同一个卸载程序的行为会有所不同?
如何从Apps& amp;特征
我们卸载程序的清单包括:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" />
</requestedPrivileges>
</security>
</trustInfo>
我尝试更改requestedExecutionLevel
,并尝试完全删除trustInfo
,但无论如何都没有改变行为。
在Windows 10 1511版本10586.104上进行了测试。
修改:为了澄清,我尝试处理的情况是用户拥有标准帐户但不知道管理员帐户的密码。如果他们在尝试卸载时看到UAC提示,他们别无选择,只能取消它,并且我们的卸载程序无法运行。
答案 0 :(得分:3)
这是&#34; Apps&amp;特征&#34;我所知道的。 WiX的人有closed this issue作为Windows错误,我认为他们已经通知了正确的人@ Microsoft。在Insider build 15042中,行为仍然相同,因此可能无法及时修复Creators Update。
如果标准用户无法提升,则无法使用解决方法。
如果他们可以提升,那么您可以使用评论中发布的re-spawn workaround或手动加载用户个人资料并致电RegOverridePredefKey
,但他们都是丑陋的黑客(恕我直言)。