2011-01-26 140 views
3

我们使用WiX构建了我们的产品安装。 它需要在服务器上执行,并且因为它的性质,需要创建用户并分配这个用户特定的权限(例如,作为服务执行) 为此,我们使用我们自己的自定义操作,这些操作在基于C#的自定义行动库。MSI安装和UAC

当我们开始由具有管理权限但不是Windows 2008管理员的用户进行安装时,系统不会要求我们确认是否要执行此应用程序(UAC对话框未显示)。 因此,所有这些操作失败,因为MSI似乎没有管理权限运行。 我们不能让我们的动作延期,因为其中一些需要在UI序列中执行并需要标记为“立即”。

我们如何将安装程序标记为需要管理权限的安装程序? 我们尝试过使用WiX属性InstallPrivileges ='elevated',但文档说它是默认设置的,它没有任何区别。

谢谢

回答

5

您不能直接标记MSI以请求管理员权限。但是,您可以尝试使用一个EXE引导程序通过其清单要求海拔:http://msdn.microsoft.com/en-us/library/bb756929.aspx

更好的办法是,而不是拆单行为其做一切你的自定义操作:

  • 使用即时自定义操作,其从UI收集数据
  • 使用不带模拟自定义操作递延其中使用数据

由UI自定义操作收集的信息可以存储在安装Pro perties。这些属性可以通过Action Data(CustomActionData属性)传递给延期操作。

+0

是的,我知道。感谢提醒。我认为没有那样做会有办法。 – 2011-01-27 12:19:18

+0

使用引导程序时,如何使用卸载/修复功能 - 它们还需要删除用户或在手动删除用户的情况下重新创建用户?我们知道修复/卸载将直接启动,无需启动引导程序,这将引发同样的问题。不是吗? – 2011-01-27 12:40:33

1

我在我的安装中使用InstallPrivileges ='elevated',它显示Windows 2008上的UAC对话框。您是否在“安装”按钮上看到了防护图标?