Do Pre-checking before install
用户有了快捷方式了,但当程序启动起来后,却弹出一个错误说"应用程序正常初始化(0xc0000135)失败.请单击'确定',终止应用程序."...
![](https://images.cnblogs.com/cnblogs_com/shalahu/40.jpg)
晕了,原来客户的机器上没装.NET Framework啊~一般这种情况下,没耐心的用户会大骂一通,然后直接卸载走人~这是我们最不愿意看到的,那么在安装前,怎样告诉用户这个有可能引发他不满的信息呢?解决方案,WiX已经准备好了~来看下面这段代码节选:
代码
![](https://images.cnblogs.com/cnblogs_com/shalahu/40.jpg)
晕了,原来客户的机器上没装.NET Framework啊~一般这种情况下,没耐心的用户会大骂一通,然后直接卸载走人~这是我们最不愿意看到的,那么在安装前,怎样告诉用户这个有可能引发他不满的信息呢?解决方案,WiX已经准备好了~来看下面这段代码节选:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
......
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<PropertyRef Id="NETFRAMEWORK35"/>
<Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
<Directory Id="TARGETDIR" Name="SourceDir">
......
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
......
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<PropertyRef Id="NETFRAMEWORK35"/>
<Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
<Directory Id="TARGETDIR" Name="SourceDir">
......
接下来,我们详细看看Condition
<Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
好了,我们在看看其他几个经常用到的Pre-checking
Condition的不仅仅用在Pre-checking,条件也是可以是自定义的任意属性组合~ 这些我们以后遇到具体问题再加以介绍~
Pre-checking对一个良好的Installer来说非常重要,那种写在Readme.txt里的真不如冒昧的弹出个对话框!用户都希望把问题解决在萌芽之中,而不是事后截图,发帖子在你的产品支持论坛里~