在自定义操作之前评估条件
Evaluate conditions before custom actions
我在InstallUISequence
下有这个动作:
<Custom Action="WarnIfOutlookNotInstalled" Sequence="1"><![CDATA[NOT Installed]]></Custom>
我也有这种情况:
<PropertyRef Id="NETFRAMEWORK45"/>
<Condition Message="This product requires .NET Framework 4.5 or later."><![CDATA[Installed OR NETFRAMEWORK45]]></Condition>
名为 WarnIfOutlookNotInstalled
的自定义操作是在面向 .NET 4.0 的自定义操作 DLL 中定义的。我遇到的问题是,当我 运行 我的 MSI 时,它会尝试 运行 WarnIfOutlookNotInstalled
自定义操作,然后再尝试评估我的上述 Condition
。我需要这是另一种方式,它必须在自定义操作之前评估条件,因为如果未安装 .NET 4,它将完全失败,并向用户显示我的致命错误屏幕,上面写着 "The installer was interrupted before it could be installed. You need to restart the installer to try again." 我怎样才能解决这个问题?
自定义操作会在 certain step during the installation 执行,具体取决于您安排的位置。
在您的情况下,您需要将自定义操作安排在标准操作之后执行 "LaunchConditions"。通过在 < InstalUISequence > 中添加类似这样的内容:
<Custom Action="WarnIfOutlookNotInstalled" After="LaunchConditions"><![CDATA[NOT Installed]]></Custom>
我在InstallUISequence
下有这个动作:
<Custom Action="WarnIfOutlookNotInstalled" Sequence="1"><![CDATA[NOT Installed]]></Custom>
我也有这种情况:
<PropertyRef Id="NETFRAMEWORK45"/>
<Condition Message="This product requires .NET Framework 4.5 or later."><![CDATA[Installed OR NETFRAMEWORK45]]></Condition>
名为 WarnIfOutlookNotInstalled
的自定义操作是在面向 .NET 4.0 的自定义操作 DLL 中定义的。我遇到的问题是,当我 运行 我的 MSI 时,它会尝试 运行 WarnIfOutlookNotInstalled
自定义操作,然后再尝试评估我的上述 Condition
。我需要这是另一种方式,它必须在自定义操作之前评估条件,因为如果未安装 .NET 4,它将完全失败,并向用户显示我的致命错误屏幕,上面写着 "The installer was interrupted before it could be installed. You need to restart the installer to try again." 我怎样才能解决这个问题?
自定义操作会在 certain step during the installation 执行,具体取决于您安排的位置。
在您的情况下,您需要将自定义操作安排在标准操作之后执行 "LaunchConditions"。通过在 < InstalUISequence > 中添加类似这样的内容:
<Custom Action="WarnIfOutlookNotInstalled" After="LaunchConditions"><![CDATA[NOT Installed]]></Custom>