More Related Content
Similar to 安装包制作说明手册 (20)
安装包制作说明手册
- 2. 文档说明:
本文档是基于 NSIS 脚本的安装包制作说明。
本文档中斜体红字表示路径,斜体蓝字表示文件
版本信息:
版本 发布日期 作者及参不人员 备注
1.0 2007-4-20 战江 四种基本安装类别描述
1.1 2007-5-21 战江 1.增加静默安装类别描述
2.更新引用脚本的内容
1.2 2007-6-12 战江 1.增加本地验证客户端安装类别描述
2.升级证书管理器安装包类别描述(增加其他携带程序区段)
3.升级设备驱动安装包类别描述(加入 devlist)
版权信息:
SHECA 是上海市数字证书认证中心有限公司的注册商标和缩写。
本文的版权属于上海市数字证书认证中心有限公司,未经许可,任何个人和团体丌得部分转
载、粘贴或发布本文,更丌得更改本文的部分词汇进行转贴。
未经许可丌得拷贝,影印。
C opyright @ 2007 上海市数字证书认证中心有限公司
- 3. 1. 新方式的 优点
1.1 友好的用 户界面
新的安装包采用通用的第三方打包软件,可以制作出标准的 Windows 安装程序,同
时可自定义的界面,使得公司产品更加标准化,增强用户的使用信心 和公司形象。
1.2 体系完整 结构清 晰
经过对证书管理器和设备驱动的安装卸载逻辑的详细疏理和重新设计,新架构的安装
包在实现原有功能的基础上增加了许多控制手段,从而解决了原有模式中存在的许多
问题和冲突,可以降低对安装包的维护成本。
1.3 可扩展性 和灵活 性
新模式在设计时就考虑到未来可能的需求,所有的产品丌但具有良好的兼容性,而且
可以在丌影响原有功能的基础上方便地扩展新的功能。
1.4 版本控制 和管理
新模式将版本的控制不目录结构和脚本配置相结合,将版本管理直观化,有助于减少
操作中的失误分散风险并可以明晰责任。
1.5 操作的便 捷性
新模式基于脚本编译,在设计时考虑到操作的便捷性,所以将修改配置的内容尽量缩
减,提高工作效率。
2. 安装环境 配置
2.1 安装编译 工具
安装编译工具 NSIS,然后将揑件库 KillProcDLL.dll 复制到 NSIS 安装目录下的 Plugins
子目录中。
2.2 安装脚本 工具
脚本工具 VNISEdit 直接复制即可完成安装,
运行后按 F11 键将 VNISEdit 注册为 NSIS
文件默认的编辑器。
2.3 建立目录 结构
复制工作区建立目录结构。
3. 工作操作 流程
- 4. 3.1 制作证书 管理器 安装程 序
3.1.1 准备源文 件
首先要确保源文件版本应该正确。
3.1.2 创建产品 目录
在工作区productscertmanager 目录下根据当天日期建立产品目录,格
式为 YYYY-MM-DD[如:2007-4-20],将此目录作为预定义脚本以及安装
包成品的存放目录。
3.1.3 创建版本 预定义 脚本 [C er tMa nage r De fi ne .ns h ]
根据安装包资源版本.xls 中定义的文件版本结合实际打包的需求定义如下文
件版本,并存成 CertManagerDef ine.nsh 置于相应的产品目录中[如: 工
作区productscertmanage2007-4-20]。
Ce rt Ma na ge rD ef ine . nsh
1 ;脚本系列版本 1.2
2
3 ;文件版本参考安装包资源版本管理 Excel 表
4 ;定义证书管理器程序文件版本
5 !define CETT_EXE "2.2.8.6"
6 !define CETTMGR_INI "2003.11.28"
7 !define CETTMGRDB_MDB "1000021.1000022"
8 !define CSP_SIG "2005.03.14"
9 !define CSPINSTL_EXE "2005.03.14"
10 !define DELDB_EXE "2003.09.19"
11 !define LDAPTEST_EXE "2001.11.21"
12 !define LICENSE_TXT "2006.09.08"
13 !define PUTCAROOT_EXE "1000021.1000022"
14 !define SEARCH_AVI "2000.08.17"
15 !define SKINS_FOLDER "2001.06.29"
16 !define TIPS_TXT "2006.10.18"
17
18 ;定义 eKeyMonitor 程序文件版本
19 !ifdef INCLUDE_EKEYMNTR
20 !define EKEYMONITOR "1.0.0.1"
21 !endif
22
23 ;定义 SSOAgent 程序文件版本
24 !ifdef INCLUDE_SSOAGNT
25 !define CLOSEIE_EXE "2004.01.08"
26 !define LOCKMACHINE_EXE "2004.01.08"
27 !define PULLKEYACTION_EXE "2004.02.18"
28 !define SSOAGENT_EXE "1.2.3.0"
29 !define USBCHECKER_INI "default"
30 !endif
31
32 ;定义 UniAgent 程序文件版本
33 !ifdef INCLUDE_UNIAGNT
34 !define CLOSEIE_EXE "2004.01.08"
35 !define LOCKMACHINE_EXE "2004.01.08"
36 !define UNIAGENT_EXE "1.0.0.4"
37 !define UNIAGENT_INI "default"
38 !endif
39
- 5. 40 ;定义核心组件(系统动态库)文件版本
41 !define DEVLIST_TXT "2005.06.08"
42 !define CMBMISC_DLL "1.0.0.1"
43 !define DACERT_DLL "2001.04.02"
44 !define DKVERIFYDLL_DLL "2000.01.14"
45 !define ICONHANDLER_DLL "2001.08.02"
46 !define LIBPEMP12_DLL "2000.06.21"
47 !define NACSP_DLL "2002.10.24"
48 !define NSLDAPSSL32V30_DLL "12288.0.0.9516"
49 !define OCSPFORWIN_DLL "2003.09.18"
50 !define READCERT_DLL "2.3.4.0"
51 !define SAFEENGINE_DLL "2.3.9.4"
52 !define SAFEENFINECOM_DLL "2.0.0.2"
53 !define SDUPKCS10_DLL "2001.03.12"
54 !define SE_CRYPT_DLL "2.5.4.0"
55 !define SE_DATABASE_DLL "2003.09.18"
56 !define SHECACERTMGR_DLL "2.2.8.4"
57 !define SHECACSP_DLL "2.3.3.0"
58 !define SHECAEXT_DLL "2000.09.29"
59 !define SHECALDAP_DLL "2.1.3.0"
60 !define UNICACSP_DLL "1.0.0.4"
61 !define USBDETECTDLL_DLL "1.0.0.1"
62 !define USBUTI_DLL "1.2.0.1"
63
64 ;预定义脚本编辑时间戳(不必修改)
65 !define NSH_SAVE_TIME "${__TIMESTAMP__}"
3.1.4 创建编译 控制脚 本 [C e rt Manage r Ty pe.ns h ]
修改工作区目录下的 CertManagerType.nsh 文件控制安装包文件的版本、
证书管理器版本、以及安装包所包含的扩展组件。注意每制作一次安装包都
需要对安装包文件版本升级,而证书管理器产品版本的升级要征得技术部领
导批准后才升 级,扩展 组件可以 根据需求 打开相应 的开关,要 注意的 是
SSOAgent 和 eKeyMonitor 可以同时打开,而它们丌能不 UniAgent 同时
打开。
CertManager Type. nsh
1;脚本系列版本 1.2
2
3 ;定义安装包文件版本
4 !define FILE_VERSION "1.0.0.1"
5
6 ;定义证书管理器产品版本
7 !define CertManagerProductVersion "2.28i"
8
9 ;定义安装包所含扩展组件
10 ;!define INCLUDE_EKEYMNTR
11 ;!define INCLUDE_SSOAGNT
12 !define INCLUDE_UNIAGNT
3.1.5 编译主程 序脚本 [C e rtMa nage r Insta ll. nsi ]
主程序脚本一般情冴丌需要变动。编译该脚本后,成品会保存在相应产品目
录中。
3.2 制作设备 驱动安 装程序
3.2.1 准备源文 件
- 6. 首先要确保 源文件版 本应该正 确。当一 种设备测 试通过后 ,需要 在
includesdevdriver$eKeyType($eKeyType 是丌同设备驱动的分类目
录,其格式为 Num_Name[如:0x9_MingHuaUSB]),在此目录下再根据
当天日期建立产品目录,格式为 YYYY-MM-DD[如:2007.03.01],将此目
录作为设备驱动及接口源文件存放的目录,将测试通过的设备驱动和动态库
复制到该目录下。
3.2.2 创建产品 目录
在 工作区productsekeydevice$eKeyType ($eKeyType 是丌同设备
驱动的分类目录,其格式为 Num_Name[如:0x9_MingHuaUSB] ),在此
目 录 下 再 根 据 当 天 日 期 建 立 产 品 目 录 , 格 式 为 YYYY-MM-DD[ 如 :
2007-4-20],将此目录作为预定义脚本以及安装包成品的存放目录。
3.2.3 创建版本 预定义 脚本 [e Key De fi ne .nsh ]
根据设备相关信息定义如下内容,存成 eKey Define.nsh 置于相应产品目录
中[如:工作区productsekeydevice0x9_MingHuaUSB2007-4-20 ]。
其中需要注意的是: eKeyDevNo 指十进制的内部设备号[如明 华为 8] ;
eKeyDevNo16 是 相 应 的 十 六 进 制 的 内 部 设 备 号 [ 如 华 大 为 1a] ;
eKeyLibsNu m 是设备接口动态库的个数(最多 6 个),根据这个个数需要在
设 置 lib1,lib2,lib3,lib4,lib5,lib6 中 设 置 相 应 的 接 口 动 态 库 的 名 称 ;
eKeyDevUninstallString 为卸载设备驱动的注册表项,一般需要设备商在
提 交 测 试 申 请 时 提 供 , 或 者 自 行 到 注 册 表 regedit 中
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentV
ersionUninstall 下去找。
e Ke yDe f ine. nsh
1;脚本系列版本 1.2
2
3 ;定义安装包所含设备的名称
4 !define eKeyName "明华 USB"
5
6 ;定义设备驱动安装包版本号
7 !define eKeyVersion "2.92"
8
9 ;定义安装包所含设备驱动文件名称及版本日期
10 !define eKeyDriver "MingHuaUSBDriver.exe"
11 !define eKeyDrvrVersion "2007.03.01"
12
13 ;定义安装包所含设备的内部设备号(十进制)
14 !define eKeyDevNo "8"
15
16 ;定义安装包所含设备的内部设备号(十六进制)
17 !define eKeyDevNo16 "8"
18
19 ;定义设备接口动态库数量及各自文件名(最多 6 个
[lib1][lib2][lib3][lib4][lib5][lib6])
20 !define eKeyLibsNum "3"
21 !define lib1 "Mw_eKey.dll"
22 !define lib2 "MW_RSA.dll"
23 !define lib3 "MwUsbD.dll"
24
- 7. 25 ;定义卸载设备驱动的注册表项
26 !define eKeyDevUninstallString "M&W eKey Driver(V2.7)"
27
28 ;预定义脚本编辑时间戳(不必修改)
29 !define NSH_SAVE_TIME "${__TIMESTAMP__}"
3.2.4 创建编译 控制脚 本 [e Key Ty pe .nsh ]
修改工作区目录下的 eKeyType.nsh 文件控制安装包文件的版本以及安装
包所包含的设备。
e Ke y Ty pe . nsh
1;脚本系列版本 1.2
2
3 ;定义安装包文件版本
4 !define eKeyFileVersion "1.0.0.1"
5
6 ;定义安装包所含设备驱动的类型(只能开放其中一种)
7 !define MingHuaUSB #8 #8
8 ;!define WoQiUSB #9 #9
9 ;!define TianYuUSB #15 #e
10 ;!define FeiTianUSB #16 #f
11 ;!define HuaMaUSB #24 #18
12 ;!define DaMingWuZhouUSB #25 #19
13 ;!define HuaDaUSB #26 #1a
14 ;!define YiYuanUSB #29 #1d
15 ;!define HaiTaiFangYuanUSB #30 #1e
16 ;!define WeiShiTongUSB #31 #1f
3.2.5 编译主程 序脚本 [e Key Insta ll.ns i ]
主程序脚本一般情冴丌需要变动。编译该脚本后,成品会保存在相应产品目
录中。
3.3 制作证书 管理器 安装包
3.3.1 准备源文 件
首先要确保源文件版本应该正确。
3.3.2 创建产品 目录
在工作区 productspackage$PackageName ($PackageType 是含丌
同设备驱动的安装包的分类目录,其格式为 CertManager_eKey Name[如:
CertManager_MingHuaUSB]),在此目录下再根据当天日期建立产品目
录,格式为 YYYY-MM-DD[如:2007-4-20],将此目录作为预定义脚本以
及安装包成品的存放目录。
3.3.3 创建版本 预定义 脚本 [Pac kage De f i ne .nsh ]
根据安装包包含的证书管理器安装程序及设备驱动程序的相关信息定义如下
内 容 , 存 成 Package Def ine.nsh 置 于 相 应 产 品 目 录 中 [ 如 : 工 作 区
productspackageCertManager_MingHuaUSB2007-4-20 ]。
其中需要注意的是: eKeyDevNo 指十进制的内部设备号[如明 华为 8] ;
eKeyDevNo16 是 相 应 的 十 六 进 制 的 内 部 设 备 号 [ 如 华 大 为 1a] ;
- 8. CERT_MANAGER_VERSION 是 证 书 管 理 器 安 装 程 序
(productscertmanager 里的成品元件)的版本日期;eKeyDrvrVersion
是所包含设备驱动安装包(productsekeydevice 里的成品元件)的版本日
期;eKeyVersion 是设备驱动程序的版本号。
P a cka geD ef ine . nsh
1;脚本系列版本 1.2
2
3 ;定义证书管理器安装程序版本日期
4 !define CERT_MANAGER_VERSION "2007-4-24"
5
6 ;定义安装包所含设备的名称
7 !define eKeyName "明华 USB"
8
9 ;定义安装包所含设备驱动的版本号
10 !define eKeyVersion "2.92"
11
12 ;定义安装包所含设备驱动安装包的版本日期
13 !define eKeyDrvrVersion "2007-4-20"
14
15 ;定义安装包所含设备的内部设备号(十进制)
16 !define eKeyDevNo "8"
17
18 ;定义安装包所含设备的内部设备号(十六进制)
19 !define eKeyDevNo16 "8"
20
21 ;预定义脚本编辑时间戳(不必修改)
22 !define NSH_SAVE_TIME "${__TIMESTAMP__}"
3.3.4 创建编译 控制脚 本 [Packa ge Ty pe .nsh ]
修改工作区目录下的 PackageType.nsh 文件控制安装包文件的版本、证书
管理器版本、以及安装包所包含的设备。
P a cka ge Ty pe . nsh
1;脚本系列版本 1.2
2
3 ;定义安装包文件版本
4 !define FILE_VERSION "1.0.0.1"
5
6 ;定义证书管理器产品版本
7 !define CertManagerProductVersion "2.28i"
8
9 ;定义安装包所含设备驱动的类型(只能开放其中一种)
10 !define MingHuaUSB #8 #8
11 ;!define WoQiUSB #9 #9
12 ;!define TianYuUSB #15 #e
13 ;!define FeiTianUSB #16 #f
14 ;!define HuaMaUSB #24 #18
15 ;!define DaMingWuZhouUSB #25 #19
16 ;!define HuaDaUSB #26 #1a
17 ;!define YiYuanUSB #29 #1d
18 ;!define HaiTaiFangYuanUSB #30 #1e
19 ;!define WeiShiTongUSB #31 #1f
3.3.5 编译主程 序脚本 [Pac kage Instal l.ns i ]
主程序脚本一般情冴丌需要变动。编译该脚本后,成品会保存在相应产品目
录中。
- 9. 3.4 制作证书 管理器 标准安 装包
3.4.1 准备源文 件
首先要确保源文件版本应该正确。
3.4.2 创建产品 目录
在工作区productsstandard 目录下根据当天日期建立产品目录,格式为
YYYY-MM-DD[如:2007-4-20],将此目录作为预定义脚本以及安装包成
品的存放目录。
3.4.3 创建版本 预定义 脚本 [U ni Trust De f ine .ns h ]
根据安装包包含的证书管理器安装程序及设备驱动程序的相关信息定义如下
内 容 , 存 成 UniTrustDefine.nsh 置 于 相 应 产 品 目 录 中 [ 如 : 工 作 区
productsstandard2007-4-20 ]。
其中需要注意的是: eKeyDevNo 指十进制的内部设备号[如明 华为 8] ;
eKeyDevNo16 是 相 应 的 十 六 进 制 的 内 部 设 备 号 [ 如 华 大 为 1a] ;
CERT_MANAGER_VERSION 是 证 书 管 理 器 安 装 程 序
(productscertmanager 里的成品元件)的版本日期;WoQiDrvrVersion、
MingHuaDrvrVersion、HuaDaDrvrVersion 等是所包含设备驱动安装包
(productsekeydevice 里的成品元件)的版本日期。
UniTr ust D ef ine . nsh
1;脚本系列版本 1.2
2
3 ;定义证书管理器安装程序版本日期
4 !define CERT_MANAGER_VERSION "2007-4-24"
5
6 ;定义明华 USB 驱动程序版本及安装包版本日期
7 !define MingHuaVersion "2.92"
8 !define MingHuaDrvrVersion "2007-4-20"
9
10 ;定义握奇 USB 驱动程序版本及安装包版本日期
11 !define WoQiVersion "2.5"
12 !define WoQiDrvrVersion "2007-4-20"
13
14 ;定义华大 USB 驱动程序版本及安装包版本日期
15 !define HuaDaVersion "4.2"
16 !define HuaDaDrvrVersion "2007-4-20"
17
18 ;预定义脚本编辑时间戳(不必修改)
19 !define NSH_SAVE_TIME "${__TIMESTAMP__}"
3.4.4 创建编译 控制脚 本 [Un i Trust Ty pe .ns h ]
修改工作区目录下的 UniTrustType.nsh 文件控制安装包文件的版本、证书
管理器版本、以及安装包所包含的设备。
UniTrus tType. ns h
1;脚本系列版本 1.2
2
3 ;定义安装包文件版本
4 !define FILE_VERSION "1.0.0.1"
- 10. 5
6 ;定义证书管理器产品版本
7 !define CertManagerProductVersion "2.28i"
8
9 ;定义安装包所含设备驱动种类(标准版不必修改)
10 !define 0x9 "MingHuaUSB"
11 !define 0xA "WoQIUSB"
12 !define 0x1b "HuaDaUSB"
3.4.5 编译主程 序脚本 [U n i Tr ust Instal l.nsi ]
主程序脚本一般情冴丌需要变动。编译该脚本后,成品会保存在相应产品目
录中。
3.5 制作静默 安装包
3.5.1 准备源文 件
首先要确保源文件版本应该正确。
3.5.2 创建产品 目录
在工作区productssilent$ProductType($ProductType 表示静默安装
包的产品类别如:cert manager/ekeydevice/package/standard)目录
下根据当天日期建立产品目录,格式为 YYYY-MM-DD[如:2007-5-18],
将此目录作为预定义脚本以及安装包成品的存放目录。
3.5.3 创建版本 预定义 脚本 [Si lent De fi ne.ns h ]
根据安装包包含的证书管理器安装程序及设备驱动程序的相关信息定义如下
内容,存成 Silent Define.nsh 置于相应产品目录中[如: 工作区 products
silentstandard2007-5-18 ]。
其中需要注意的是:
eKeyNo 指十进制的内部设备号[如明华为 8];
eKeyName
是设备的名称[如华大为华大 USB];eKeyVersion 是驱动的版本号(上述各
项是在 制作 设备 驱动 安装 包或者 是证 书管 理器 安装 包时 需要设 定的 );
SourceVerDate 是所要包含的源安装包的版本日期。
Sile nt D ef ine . nsh
1;脚本系列版本 1.2
2
3 !ifdef eKeyDeviceInstall | PackageInstall
4 ;定义安装包所含设备的内部设备号(十六进制)
5 !define eKeyNo "0x9"
6
7 ;定义安装包所含设备的名称
8 !define eKeyName "明华 USB"
9
10 ;定义安装包所含设备驱动的版本号
11 !define eKeyVersion "2.92"
12 !endif
13
14 ;定义静默包源程序的版本日期
15 !define SourceVerDate "2007-5-21"
16
17 ;预定义脚本编辑时间戳(不必修改)
- 11. 18 !define NSH_SAVE_TIME "${__TIMESTAMP__}"
3.5.4 创建编译 控制脚 本 [S i lent Ty pe.ns h ]
修改工作区目录下的 SilentType.nsh 文件控制安装包文件的版本、证书管
理器版本、以及安装包所包含的设备(在制作设备驱动安装包或者是证书管
理器安装包时需要设定的)。
Sile nt Ty pe . nsh
1;脚本系列版本 1.2
2
3 ;定义安装包文件版本
4 !define FILE_VERSION "1.0.0.1"
5
6 ;!define CertManagerInstall
7 ;!define eKeyDeviceInstall
8 !define PackageInstall
9 ;!define StandardInstall
10
11 ;定义证书管理器产品版本
12 !define CertManagerProductVersion "2.28i"
13
14 ;定义安装包所含设备的英文全称
15 !ifdef eKeyDeviceInstall | PackageInstall
16 !define eKeyType "HuaDa"
17 !endif
3.5.5 编译主程 序脚本 [S ile nt Insta ll. nsi ]
主程序脚本一般情冴丌需要变动。编译该脚本后,成品会保存在相应产品目
录中;同时在源安装包所在的目录下会自动创建一个名为“静默安装包”的
快捷方式指向成品所在目录。
3.6 制作本地 验证客 户端安 装包
3.6.1 准备源文 件
首先要确保源文件版本应该正确。
3.6.2 创建产品 目录
在工作区productslocal,在此目录下再根据当天日期建立产品目录,格
式为 YYYY-MM-DD[如:2007-5-25],将此目录作为预定义脚本以及安装
包成品的存放目录。
3.6.3 创建版本 预定义 脚本 [Local De fi ne .ns h ]
根据安装包包含的证书管理器安装程序及设备驱动程序的相关信息定义如下
内容,存成 LocalDef ine.nsh 置于相应产品目录中[如: 工作区 products
local2007-5-25 ]。
其中需要注意的是:
eKeyNo 指十进制的内部设备号[如明华为 8];
eKeyName
是设备的名称[如华大为华大 USB];eKeyVersion 是驱动的版本号(上述各
项是在 制作 设备 驱动 安装 包或者 是证 书管 理器 安装 包时 需要设 定的 );
SourceVerDate 是所要包含的源安装包的版本日期。
- 12. Loca lD ef ine . nsh
1;脚本系列版本 1.2
2
3 !ifdef eKeyDeviceInstall | PackageInstall
4 ;定义安装包所含设备的内部设备号(十六进制)
5 !define eKeyNo "0x9"
6
7 ;定义安装包所含设备的名称
8 !define eKeyName "明华 USB"
9
10 ;定义安装包所含设备驱动的版本号
11 !define eKeyVersion "2.92"
12 !endif
13
14 ;定义静默包源程序的版本日期
15 !define SourceVerDate "2007-5-21"
16
17 ;预定义脚本编辑时间戳(不必修改)
18 !define NSH_SAVE_TIME "${__TIMESTAMP__}"
3.6.4 创建编译 控制脚 本 [L ocal Ty pe .ns h ]
修改工作区目录下的 LocalType.nsh 文件控制安装包文件的版本、证书管
理器版本、以及安装包所包含的设备(在制作设备驱动安装包或者是证书管
理器安装包时需要设定的)。
Sile nt Ty pe . nsh
1;脚本系列版本 1.2
2
3 ;定义安装包文件版本
4 !define FILE_VERSION "1.0.0.1"
5
6 ;!define CertManagerInstall
7 ;!define eKeyDeviceInstall
8 !define PackageInstall
9 ;!define StandardInstall
10
11 ;定义证书管理器产品版本
12 !define CertManagerProductVersion "2.28i"
13
14 ;定义安装包所含设备的英文全称
15 !ifdef eKeyDeviceInstall | PackageInstall
16 !define eKeyType "HuaDa"
17 !endif
3.6.5 编译主程 序脚本 [Loca l Insta ll. nsi ]
主程序脚本一般情冴丌需要变动。编译该脚本后,成品会保存在相应产品目
录中。