首页 > 解决方案 > wix customaction 与 Publish Event="DoAction" 一起使用时会出现错误 2896

问题描述

wxs 文件


<Dialog Id="InputParameters" Width="370" Height="270" Title="!(ll.MyDlg_Title)">
        <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" >
          <Publish Event="DoAction" Value="ValidateParameters" >1</Publish>   
        </Control>
 <Dialogue>

<CustomAction Id="ValidateParameters" BinaryKey="my_dll.CA.dll" DllEntry="ValidateParametersFunc" Execute="immediate" />     

CustomAction.cs 文件

[CustomAction]
public static ActionResult ValidateParametersFunc(Session session) 
{
     session.log("perform validation");
     return ActionResult.Success;
} 

CustomAction.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
        <supportedRuntime version="v2.0.50727"/>
<configuration>

当用户单击 InputParameters Dialogue 上的 Next 按钮时,我正在尝试执行验证功能。我的所有其他自定义操作都包含在 InstallExecuteSequence 中。如果我使用 VBScript 使用以下 customAction 而不是上面的函数 ValidateParametersFunc 来显示弹出窗口,那么效果很好。

   <CustomAction Id="ValidateEnrollmentParameters" Script="vbscript" Execute="immediate"> <!CDATA[msgbox "You clicked?"]]></CustomAction>

但我想执行函数ValidateParametersFunc。我收到错误:


Action 18:58:13: ValidateParametersFunc. 
Action start 18:58:13: ValidateParametersFunc.
MSI (c) (C4:20) [18:58:13:233]: Invoking remote custom action. DLL: C:\Users\MyUser\AppData\Local\Temp\2\MSI8187.tmp, Entrypoint: ValidateParametersFunc
MSI (c) (C4:A4) [18:58:13:236]: Cloaking enabled.
MSI (c) (C4:A4) [18:58:13:236]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (C4:A4) [18:58:13:236]: Connected to service for CA interface.
Action ended 18:58:13: ValidateEnrollmentParameters. Return value 3.
MSI (c) (C4:04) [18:58:13:807]: Note: 1: 2205 2:  3: Error 
MSI (c) (C4:04) [18:58:13:807]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2896 
DEBUG: Error 2896:  Executing action ValidateParametersFunc failed.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: ValidateParametersFunc, , 

CustomActions 项目的目标框架是:v4.6.1 有人可以帮忙吗? 我已经尝试了互联网上给出的所有内容,但仍然无法弄清楚如何解决这个问题。

标签: wix.net-4.0windows-installercustom-action.net-framework-version

解决方案


推荐阅读