从对话框调用 CustomAction 时出现 WiX 安装错误 2762

Posted

技术标签:

【中文标题】从对话框调用 CustomAction 时出现 WiX 安装错误 2762【英文标题】:WiX install error 2762 while invoking a CustomAction from dialog 【发布时间】:2011-12-21 06:33:37 【问题描述】:

我是初学者,开始学习 WiX。我想在安装过程中捕获、验证和注册用户详细信息。我创建了一个对话框来捕获用户注册并在用户单击“下一步”后调用自定义操作。

但在这里我收到安装程序错误 2762。虽然错误描述说“必须在 InstallInitialize 和 InstallFinalize 之间安排操作”,但我无法弄清楚如何解决此问题。

这是我的 XML 脚本:

<Binary Id="mycustom"
        SourceFile="..\CustomAction1\bin\Debug\CustomAction1.CA.dll" />

<CustomAction Id="myCustomValidate"
              BinaryKey="mycustom"
              DllEntry="ValidateCustomAction"
              Execute="deferred"
              Return="check">
</CustomAction>

<UI>
    <UIRef Id="WixUI_Mondo" />
    <Dialog Id="UserRegistrationDlg"
            Width="370"
            Height="270"
            Title="[ProductName] [Setup]"
            NoMinimize="yes">
        ..
        ..
        ..
        <Control Id="Next"
                 Type="PushButton"
                 X="236"
                 Y="243"
                 Width="56"
                 Height="17"
                 Default="yes"
                 Text="[ButtonText_Next]">
            <Publish Event="ValidateProductID" Value="0">1</Publish>
            <Publish Event="DoAction" Value="myCustomValidate">1</Publish>
            <Publish Event="SpawnDialog" Value="InvalidRegDlg">PIDACCEPTED = "0"</Publish>
            <Publish Event="NewDialog" Value="SetupTypeDlg">ProductID AND PIDACCEPTED = "1"</Publish>
        </Control>
    </Dialog>
</UI>

以下是我使用的自定义操作代码。

[CustomAction]
public static ActionResult ValidateCustomAction(Session session)

    return ActionResult.Success;

如果在“InstallExecuteSequence”中使用,自定义操作可以正常工作。我无法找出问题所在,我删除了自定义对话框并使用以下简单调用来调用自定义操作。但我最终遇到了同样的错误。

<Publish Dialog="LicenseAgreementDlg"
         Control="Next"
         Event="DoAction"
         Value="myCustomValidate">1</Publish>

我确定我在这里做了一些愚蠢的事情,但无法弄清楚。解决办法是什么?

【问题讨论】:

【参考方案1】:

在您的 CustomAction 元素中,将 Execute 属性设置为 immediate。 Deferred actions 只能在 InstallInitialize 和 InstallFinalize 操作之间的 InstallExecuteSequence 中运行。

【讨论】:

以上是关于从对话框调用 CustomAction 时出现 WiX 安装错误 2762的主要内容,如果未能解决你的问题,请参考以下文章

Wix:无法从Wix CustomAction调用DISM

加载新对话框时出现 Jqueryui 对话框问题

使用 WiX C#/.NET 4 自定义操作时出现错误 2896

从适配器 Android 中的按钮显示 DialogFragment 时出现问题

尝试创建 Quickblox 群聊对话框,使用 REST API 登录用户时出现错误。

访问 webhook URL 时出现错误“操作错误:没有匹配的意图处理程序:null”