相关疑难解决方法(0)

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

我是初学者,开始学习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>
Run Code Online (Sandbox Code Playgroud)

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

[CustomAction]
public static ActionResult ValidateCustomAction(Session session)
{
    return ActionResult.Success;
}
Run Code Online (Sandbox Code Playgroud)

如果在"InstallExecuteSequence"中使用自定义操作正常工作.我无法弄清楚问题,我删除了自定义对话框并使用以下简单调用来调用自定义操作.但我最终得到了同样的错误.

<Publish Dialog="LicenseAgreementDlg"
         Control="Next"
         Event="DoAction"
         Value="myCustomValidate">1</Publish>
Run Code Online (Sandbox Code Playgroud)

我相信我在做一些愚蠢的事情,但无法理解.解决办法是什么?

windows-installer wix wix3.5

16
推荐指数
1
解决办法
8639
查看次数

标签 统计

windows-installer ×1

wix ×1

wix3.5 ×1