如何在具有提升权限的WiX中创建的MSI中运行自定义操作?

时间:2011-03-29 17:54:02

标签: installer wix windows-installer custom-action

我有一个安装程序需要访问注册表并使用自定义操作复制和删除文件。 在Windows XP中,安装程序工作正常,但在Vista和7中,安装程序显示错误,因为它无法访问文件夹,但如果我以管理员身份运行安装程序,一切正常。

因此,我需要安装程序能够以管理员身份运行自定义操作,即使MSI没有以这种方式运行(需要安装程序由常规用户运行)。我尝试在安装开始时使用EXE来修改注册表并允许MSI正常运行,但我不认为这是一个非常好的解决方案。

PS。由于客户要求,Bootstrapper不是一个选项:S 我的所有自定义操作都是延迟的,并且模拟=“否”

有什么想法吗? 谢谢

2 个答案:

答案 0 :(得分:5)

确保:

  • 在InstallInitialize
  • 之后安排
  • “执行”属性设置为延期
  • “Impersonate”属性设置为

请注意,延迟的自定义操作无法访问安装会话,因此您无法直接访问安装程序属性。

答案 1 :(得分:2)

您的自定义操作必须在InstallInitializeInstallFinalize操作之间进行排序。

运行安装程序时是否收到UAC提示?如果执行每台计算机的安装,则在向导中单击安装按钮时会出现UAC提示。如果您没有收到UAC提示,请检查ALLUSERS属性是否设置为2.另请参阅Marking the Privileges for an MSI