我有一个CustomAction作为MSI的一部分.
它必须作为域帐户运行,该帐户也是本地Administrators帐户的成员.
它不能使用NoImpersonate标志将自定义操作作为NT Authority\System运行,因为它不会访问网络资源.
在启用了UAC的Vista/2008上,如果NoImpersonate处于关闭状态,则它将作为执行用户运行,但具有非特权令牌,并且无法访问本地资源,例如.installState.请参阅UAC架构
任何人都知道一种方法
强制MSI使用提升的令牌运行,就像从提升的命令提示符运行一样?
强制CustomAction运行提升(清单中的requireAdministrator似乎不起作用)?
如果启用了UAC并且是否未升级并且如果出现警告或取消安装,请确定?
我为.NET WPF应用程序开发了一个带有WiX的自定义安装程序.如果我右键单击并以管理员身份运行,它可以正常工作,但是当没有运行时,由于权限不足,某些组件无法安装.
这些组件包括SQL Server Express 2008 R2,FoxIt Reader,ActiveX组件和其他一些组件.它还要求在新安装的数据库上运行一些SQL脚本 - 无论如何,它们都需要管理员权限.
我尝试将InstallScope ="perMachine"和InstallPrivileges ="elevated"属性添加到Package节点,但这似乎没有什么区别.
我确定这是愚蠢的,但我在参考或在线找不到任何东西.