Wix 自定义操作未运行

Wix 自定义操作未运行,wix,custom-action,Wix,Custom Action,我已经为我的安装程序定义了一个。安装程序似乎没有运行 以下是WXS文件中定义自定义操作的行: <CustomAction Id="GetConfigProperties" BinaryKey="GetPropertiesDLL" DllEntry="GetPropertiesFromConfigFile" /> <InstallExecuteSequence> <RemoveExistingProducts After="Insta

我已经为我的安装程序定义了一个。安装程序似乎没有运行

以下是WXS文件中定义自定义操作的行:

    <CustomAction Id="GetConfigProperties" BinaryKey="GetPropertiesDLL" DllEntry="GetPropertiesFromConfigFile" />

    <InstallExecuteSequence>
        <RemoveExistingProducts After="InstallInitialize" />
        <Custom Action="NewerVersionDetected" After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
        <Custom Action="GetConfigProperties" After="FindRelatedProducts"></Custom>
        . . .            
    </InstallExecuteSequence>

    <Binary Id="GetPropertiesDLL" SourceFile="$(var.LPRCore Installer CBP Helper.TargetDir)\LPRCore Installer CBP Helper.CA.dll" />
代码中还有一些其他的
session.Log
语句,我想看看发生了什么


现在,我启用了日志记录。当我查看记事本中的日志文件时,我没有看到我对
session.log
的调用中的任何消息。我也没有看到对
GetConfigProperties
的引用。似乎根本没有执行自定义操作。我做错了什么?

我认为您缺少运行自定义操作的条件。要么给出一些条件
未安装,要么不删除
,或者如果要将其设置为默认值,则将1作为条件
1

如果在日志文件中看不到GetConfigProperties自定义操作的任何条目,最可能的原因是InstallExecutesequence元素驻留在一个单独的片段中,该片段未包含在包中。要将片段的内容包含到包中,您应该从Product元素内部引用其中的任何元素

例如,可以将以下行添加到Product元素:

<CustomActionRef Id="GetConfigProperties" />

结果是自定义操作没有运行,因为:

  • 它被安排在错误的地方运行。我的错,我需要把它放在InstallUISequence部分,而不是InstallSequence部分

  • 在操作运行之前,我正在中止安装

  • 当我将自定义操作放入InstallUISequence部分并放在正确的位置时,一切正常

    谢谢你的努力


    托尼不,那不是真的。如果省略该条件,则默认情况下该条件为1
    <CustomActionRef Id="GetConfigProperties" />