1 概要
InstallShield 2009安装后Redistributables(可分发组件包)中包括了.Net Framework 2.0 sp1。个别项目要求打包时需要集成.Net Framework 2.0 sp2。下面介绍下手动如何扩展Redistributables,增加自己需要的发布组件包。
2 详细过程
2.1 获取.Net Framework 2.0 sp2分发组件包
当然要去Microsoft的官方网站。
NetFx20SP2_x86.exe,大小23.8 MB
2.2 创建InstallShield Prerequisite文件(*.prq)
在X:/Program Files/InstallShield/2009/SetupPrerequisites目录下保存*.prq文件,它就是utf-8编码的xml文件。创建一个Microsoft .NET Framework 2.0 SP2.prq。
文件说明,主要节点:
<conditions>验证目标机组件包是否存在的条件,可以通过注册表、特殊文件版本等;
<files>本地组件包文件路径;
还有其他一些节点,这里不做详细说明了,建议大家不要自己编写prq文件内容,直接从现有的prq文件复制一个新的Microsoft .NET Framework 2.0 SP2.prq文件即可。至于文件里的内容可以通过InstallShield的界面来修改。
2.3 配置InstallShield Prerequisite
Microsoft .NET Framework 2.0 SP2.prq文件创建好后,进入InstallShield的Redistributables列表后可以看到Microsoft .NET Framework 2.0 SP2组件,当然现在还不能直接使用,需要进入Edit Prerequisite来进行一些必要的配置。一共6个选项卡,其中Conditions、Files to Include非常重要必须配置。
Conditions中包含如何验证目标系统中是否包含Microsoft .NET Framework 2.0 SP2,或指定特殊的操作系统。通过Add按钮来增加验证条件,这里是通过验证注册表里是指定键值(HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v2.0.50727下sp的键值是否等于2)来判断的,具体设置:
- Select the type of condition:A registry entry has a specified value
- Properties:
- Specify the registry key name to check:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v2.0.50727
- Specify the registry value name to check:SP
- Specify the registry value data to check:2
- Check the following registry location on a 64-bit system:Default
- Run this prerequisite if the specified registry value data has the following relationship to:is not equal to
Files to Include中File和Url分别是设置本地组件包的路径,通过http下载的url。
Application to Run设置组件包运行时必要的参数。
Behavior设置组件包安装前权限条件或重启方式。
最后File-Save来保存配置。
以上都设置好后之需要把Microsoft .NET Framework 2.0 SP2勾选上,再编译就OK了。打包后的安装程序会通过注册表验证目标机是否有Microsoft .NET Framework 2.0 SP2组件包,没有的话就会提示用户安装。