在自定义操作之前评估条件

时间:2015-03-05 22:16:45

标签: .net visual-studio wix windows-installer installer

我在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,它将完全失败,并向用户显示我的致命错误屏幕,其中显示“安装程序是在安装之前中断。您需要重新启动安装程序才能再次尝试。“我怎样才能解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

自定义操作会在certain step during the installation执行,具体取决于您安排的位置。

在您的情况下,您需要安排在标准操作“LaunchConditions”之后执行的自定义操作。通过在&lt;中添加类似的东西InstalUISequence&gt;:

  <Custom Action="WarnIfOutlookNotInstalled" After="LaunchConditions"><![CDATA[NOT Installed]]></Custom>