有关InstallShield制作的安装包如何进行平台过滤,这是上次InstallShield培训遗留下来的问题,现将问题结果整理如下:
所谓平台过滤,就是要求用户在点击安装包安装时,只能在我们指定的平台上方可继续运行安装,如果非指定平台,直接提示用户不支持此平台。
在Basic MSI和InstallScript MSI工程中,我们可以通过Condition直接设置,但InstallScript工程并不直接支持,所以还需要我们写代码来解决。
Basic MSI和InstallScript MSI工程
我们可以在Project Assistant的Installation Requirements页设置,如下图:
也可以在工程设置项里设置Condition,见下图:
InstallScript工程
InstallScript工程我们可以在事件响应函数OnBegin中添加相应平台的判断代码,平台信息可以通过SYSINFO来获取。
之前对于InstallScript工程中工程属性设置的Platform Filtering(见下图)有些错误理解:
这里的设置项并不能直接作为安装控制条件,它只是影响Components的Operating Systems的过滤选项,也就是如果在Platform Filtering中设置支持Windows 7和Windows Server 2008 R2,那么你在Components的Operating Systems里只有Windows 7和Windows Server 2008 R2两项可以选择,仅此而已,大大的误导。