如何强制WiX显示管理员提升提示

时间:2013-11-20 06:11:14

标签: wix admin uac elevated-privileges

我正在尝试使用WiX创建一个非常简单的安装程序项目,它不会在非管理员帐户下运行。

序言:

-Visual Studio 2010

-WiX 3.7

- 为Windows 7,x64

构建的程序

我有一个基本的WiX安装程序项目,它执行最简单,标准的安装过程,没有任何花哨的东西:

- 安装到程序文件

- 桌面和开始菜单快捷方式

问题:

当我以管理员身份登录时运行正常,但是在任何非管理员帐户(这意味着大多数人)中,它告诉我在安装和退出的中途没有足够的权限。从阅读开始,似乎要安装到 Program Files 文件夹,用户必须是管理员。我需要的是管理员登录对话框在继续之前弹出并询问凭据,而不是突然失败。我已经阅读了这里和WiX邮件档案中的所有相关帖子,但没有一个给出有效的答案。

我尝试过这些的每一个组合:

InstallScope="perMachine"
InstallerVersion="400", "300" and "200"
InstallPrivileges="elevated", and "limited"
<Property Id="ALLUSERS" Value="2" />
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
<Property Id="MSIFASTINSTALL" Value="1" />

而不是一个人工作。如何制作一个非管理员(再次,大多数人)可以实际运行的安装程序?

我见过的最接近的答案是使用具有自定义清单的boostrapper项目。我环顾四周,看不到如何做到这一点的好例子。

最后的说明:

- 这必须以管理员身份运行,因为我已将Visual Studio 2010可再发行组件打包为合并模块。

- 有办法解决这个问题吗?大多数人根本不以管理员身份运行。天真的用户甚至不知道它是什么。这什么时候变得如此复杂?安装一直都是如此轻而易举,我对WiX的难易程度感到非常惊讶。

2 个答案:

答案 0 :(得分:1)

没关系,问题是如果你将Windows设置为永远不会警告你关于UAC相关的事情(在控制面板中将滑块一直设置到底部),那么将不会显示任何管理员登录提示。

答案 1 :(得分:-1)

您可以添加

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" AdminImage="yes"/>
   <Property Id="MSIUSEREALADMINDETECTION" Value="1" />

这应该按照理论运作:)