我在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,它将完全失败,并向用户显示我的致命错误屏幕,其中显示“安装程序是在安装之前中断。您需要重新启动安装程序才能再次尝试。“我怎样才能解决这个问题呢?
答案 0 :(得分:1)
自定义操作会在certain step during the installation执行,具体取决于您安排的位置。
在您的情况下,您需要安排在标准操作“LaunchConditions”之后执行的自定义操作。通过在&lt;中添加类似的东西InstalUISequence&gt;:
<Custom Action="WarnIfOutlookNotInstalled" After="LaunchConditions"><![CDATA[NOT Installed]]></Custom>