【问题标题】:How to run a Custom Action inside an MSI created in WiX with elevated privileges?如何在具有提升权限的 WiX 中创建的 MSI 中运行自定义操作?
【发布时间】:2011-03-29 17:54:02
【问题描述】:

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

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

附言。由于客户的要求,引导程序不是一个选项:S 我所有的自定义操作都被延迟并且 impersonate="no"

有什么想法吗? 谢谢

【问题讨论】:

    标签: installation wix windows-installer custom-action


    【解决方案1】:

    确保:

    • 安排在 InstallInitialize 之后
    • “执行”属性设置为延迟
    • “模拟”属性设置为 no

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-09-08
        • 2011-02-05
        • 2019-03-20
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多