InstallShield 2009制作集成.NET Framework 2.0 Service Pack 2的安装包

来源:互联网 发布:红色警戒找矿软件 编辑:程序博客网 时间:2024/05/01 15:52

 

 

 

作者:veryhappy(wx.net)

1       概要

InstallShield 2009安装后Redistributables(可分发组件包)中包括了.NetFramework 2.0 sp1。个别项目要求打包时需要集成.NetFramework 2.0 sp2。下面介绍下手动如何扩展Redistributables,增加自己需要的发布组件包。

 

2       详细过程

2.1    获取.Net Framework 2.0 sp2分发组件包

当然要去Microsoft的官方网站。

http://www.microsoft.com/downloads/details.aspx?FamilyID=5b2c0358-915b-4eb5-9b1d-10e506da9d0f&DisplayLang=zh-cn

 

NetFx20SP2_x86.exe,大小23.8 MB

2.2    创建InstallShield Prerequisite文件(*.prq)

X:/ProgramFiles/InstallShield/2009/SetupPrerequisites目录下保存*.prq文件,它就是utf-8编码的xml文件。创建一个Microsoft .NETFramework 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文件创建好后,进入InstallShieldRedistributables列表后可以看到Microsoft .NET Framework 2.0 SP2组件,当然现在还不能直接使用,需要进入Edit Prerequisite来进行一些必要的配置。一共6个选项卡,其中ConditionsFiles to Include非常重要必须配置。

Conditions中包含如何验证目标系统中是否包含Microsoft .NET Framework 2.0 SP2,或指定特殊的操作系统。通过Add按钮来增加验证条件,这里是通过验证注册表里是指定键值(HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET FrameworkSetup/NDP/v2.0.50727sp的键值是否等于2)来判断的,具体设置:

  • Select the type of conditionA registry entry has a specified value
  • Properties
    • Specify the registry key name to checkHKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET FrameworkSetup/NDP/v2.0.50727
    • Specify the registry value name to checkSP
    • Specify the registry value data to check2
  • Check the following registry location on a 64-bit systemDefault
  • Run this prerequisite if the specified registry value data has thefollowing relationship tois not equal to

 

Files to IncludeFileUrl分别是设置本地组件包的路径,通过http下载的url

Application to Run设置组件包运行时必要的参数。

Behavior设置组件包安装前权限条件或重启方式。

最后File-Save来保存配置。

 

以上都设置好后之需要把Microsoft.NET Framework 2.0 SP2勾选上,再编译就OK了。打包后的安装程序会通过注册表验证目标机是否有Microsoft .NET Framework 2.0 SP2组件包,没有的话就会提示用户安装。