2011-03-29 27 views
4

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

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

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

任何想法? 谢谢

回答

2

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

当您运行安装程序时是否获得UAC提示?如果您执行每台计算机的安装,则在向导中单击“”安装按钮时,您将收到UAC提示。如果你没有得到UAC提示,然后检查ALLUSERS属性设置为2。参阅Marking the Privileges for an MSI

5

请确保:

  • 它InstallInitialize后定
  • “执行”属性设置为递延
  • “模拟” 属性设置为没有

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

相关问题