1 6. 3 建 立 安 装 程 序
现 在 你 已 经 清 楚 如 何 打 包 应 用 程 序 了 包 括 决 定 采 用 何 种 模 式 比 如 公司 内 部 应 用 软 件 共 享 软 件 和 商 业 软 件 还 应 该 有 一 张 所 用 到 的 全 部 文 件 的 清单 并 保 证 包 括 了 每 个 文 件 安 装 所 涉 及 的 方 方 面 面 例 如 写 出 必 须 安 装 在SY ST E M 目 录 下 的 文 件 最 后 应 该 在 一 台 只 装 有 W ind ow s 的 机 器 上 测 试 这 些文 件 直 到 通 过 之 后 才 能 开 始 编 写 安 装 程 序
注 释 本 节 内 容 以 Visual C++6.0 的 InstallShi eld 为 基 础 老 版 本 的Visual C++ 中 的 InstallShi eld 版 本 太 低 使 用 时 必 须 修 改 某 些 过 程
才 能 满 足 需 求 即 使 你 所 使 用 的 InstallShi eld 与 本 书 所 用 的InstallShi eld 版 本 相 同 你 所 看 到 的 屏 幕 显 示 和 选 项 也 会 因 所 封 装的 程 序 不 同 而 有 所 差 异 简 而 言 之 使 用 时 看 到 的 和 叙 述 的 有 些 差 异无 关 大 局 但 必 须 安 装 InstallShi eld 产 品 它 在 Visual C++ 6.0 CD 的 Ishield 目 录 下 我 们 假 定 你 已 装 好 了
到 目 前 为 止 我 们 已 向 第 2 章 建 立 的 应 用 程 序 S ng l_D oc 中 加 入 了 一 个 资 源文 件 第 3 章 和 一 个 帮 助 文 件 第 15 章 可 以 进 行 打 包 提 交 给 用 户 了 它至 少 可 以 作 为 一 个 例 子 下 文 给 出 了 建 立 一 个 典 型 安 装 程 序 的 步 骤 这 些 没 什么 费 解 的 就 是 为 了 程 序 的 发 布 如 果 非 要 从 中 提 取 出 一 个 模 型 近 似 于 我 们前 面 提 到 的 企 业 内 部 应 用 程 序 型 的 打 包 情 况
注 本 节 讲 述 完 整 的 安 装 程 序 但 实 际 应 用 中 必 须 进 行 修 改 以 满 足 特 定 的程 序 和 安 装 环 境 的 需 要
- 启
动 In s ta llS h ie ld 6 F re e E d itio n 程 序 你 会 看 到 如 图 16 .1 所 示 的 窗 口注 意 事 先 并 没 有 定 义 工 程 文 件 但 在 P ro je c ts 窗 口 中 出 现 了 一 个 安 装向 导 而 且 看 上 去 不 像 V is u a l C + + 中 的 标 准 窗 口 但 随 着 工 作 的 进 行你 会 发 现 它 非 常 有 助 于 安 装 程 序 的 建 立 同 时 请 注 意 一 下 右 下 角 的
In s ta l l S h ie ld 链 接 单 击 将 打 开 浏 览 器 打 开 In te rn e t 上 的 In s ta llS h ie ld
在 线 帮 助 站 点
图 16 .1 In s ta l l S h ie ld 让你使用 与 V is u a l C + + 中创建应 用程序所用技术 相似的技术创 建安装程序
- 双 击
P ro jects 窗 口 的 P ro ject W izard 图 标 你 会 看 到 如 下 图 所 示 的 P ro ject
W iz a rd -W e lc o m e 对 话 框
注 InstallS hield 的 Profession al Edition 在 Welcome 及 其 它 页 提供 了 高 级 特 性 — — 请 一 定 要 读 一 读 帮 助 文 件 的 增 强 特 性 部 分
- 输
入 应 用 程 序 的 名 称 示 例 程 序 使 用 了 S ing le D o c u m e n t A pp lic a t io n
Ex a m p le
- 输
入 公 司 名 称 示 例 程 序 用 的 是 A S a m p le C o m p a n y
注 InstallShi eld 的 Free Edition 免 费 版 只 为 D evelopme nt Envirome nt 域 提 供 了 一 个 选 择 项 Microsoft Visual C++ 6
-
在
A pp lic a t ion T y p e 域 选 择 一 个 列 表 项 示 例 程 序 选 的 是 S o ftw a re D e v e lo p m e n t A p p licaio n 该安 装程序没有 标准程序类 型 而 S o ftw are D ev elo p m en t A p p licaion 支持实 用程序
-
在
A pp lic a t ion V e rs ion 域 输 入 版 本 号 我 们 用 的 是 1 .0 当 然 可 以 沿 用 自己 公 司 中 的 编 号
-
单
击 A pp lic a t ion E x e c u ta b le 域 旁 边 的 ... 省 略 号 按 钮 你 会 看 到一 个 标 准 打 开 对 话 框 用 于 查 找 硬 盘 上 的 应 用 程 序 示 例 程 序 用 的 是S NGL _ DOC .E XE 我 们 在 第 3 章 中 建 立 第 15 章 中 修 改 的 那 个 程 序 在 R e s ourc e 文 件 夹 下
-
单 击
N e x t 你 会 看 到 如 下 图 所 示 的 P ro je c t W iz a rd - C hoos e D ia logs 对 话
框
在 这 里 选 择 的 一 系 列 对 话 框 会 在 用 户 的 安 装 过 程 中 显 示 出 来 因 为 我 们 使用 的 是 企 业 内 部 应 用 型 的 程 序 所 以 不 选 中 S o ftw a re L ic e n s e A g re e m e n t Se tu p T y p e 和 Cu s to m S e tu p 对 话 框 对 本 章 前 面 部 分 讨 论 过 的 其 它 打 包 模 型 来 说
则 可 能 需 要 选 择 其 中 的 某 些 项 目 在 这 个 对 话 框 中 有 几 个 需 要 注 意 的 地 方 首
先 当 从 一 个 对 话 框 选 项 转 移 到 另 一 个 对 话 框 选 项 时 请 注 意 该 对 话 框 左 下 角的 变 化 P ro ject W izard 会 显 示 出 该 对 话 框 的 一 个 微 型 缩 影 以 方 便 你 确 认 是 否要 选 用 这 个 对 话 框 加 亮 一 个 对 话 框 后 单 击 P re v ie w 按 钮 所 看 到 的 对 话 框 与用 户 看 到 对 话 框 相 同 显 然 你 以 后 还 可 以 修 改 这 个 对 话 框 但 预 览 方 法 有 助于 你 预 先 了 解 安 装 程 序 中 要 使 用 的 对 话 框
- 选
择 想 要 加 进 安 装 程 序 的 对 话 框 单 击 N e x t 你 会 看 到 如 下 图 所 示 的
P ro je c t W iz a rd - C hoos e T a rg e t P la tfo rm s 对 话 框
由 于 我 们 想 把 我 们 的 程 序 安 装 到 各 种 支 持 程 序 上 因 此 不 需 要 改 动 要 安 装的 平 台 然 而 在 某 些 情 况 下 你 可 能 想 作 些 选 择 减 少 支 持 平 台 的 种 类 会 同 时带 来 两 种 结 果 第 一 减 少 了 所 建 立 的 安 装 程 序 的 大 小 — — 这 对 于 开 发 占 用 空间 少 的 共 享 软 件 很 有 帮 助 第 二 减 少 了 用 户 在 不 适 用 的 W ind ow s 版 本 中 使 用程 序 的 可 能 性 这 对 所 有 程 序 设 计 者 都 有 帮 助
注 不 选 中 Show onl y Available plat forms 复 选 框 时 系 统 将 会 显 示 专业 版 InstallShi eld 提 供 的 所 有 平 台 选 项
- 根
据 需 要 选 择 一 种 或 多 种 至 少 一 种 平 台 单 击 N e x t 你 会 看 到 如下 图 所 示 的 P ro ject W iza rd - S p ec if y L a n g u ag es 对 话 框
由 于 F re e E d itio n 版 只 支 持 一 种 语 言 所 以 这 里 不 需 要 作 改 动 与 所 有 其 它的 选 择 一 样 多 选 并 没 有 必 要 增 加 语 言 必 然 增 长 安 装 程 序 的 长 度 也 会 给 用户 造 成 困 惑 最 好 只 选 所 用 的 语 言
- 选
择 所 用 的 一 种 或 多 种 至 少 一 种 语 言 单 击 N e x t 你 会 看 到 如 下
图 所 示 的 P ro ject W iza rd - S p ec if y S e tu p T y p e s 对 话 框
因 为 我 们 使 用 的 是 企 业 打 包 模 型 所 以 我 选 择 了 N e tw o rk 安 装 类 型 . 其 它 打包 模 型 要 求 作 出 其 它 选 择 包 括 常 见 的 方 式 定 制 方 式 典 型 方 式 和 最 小 方 式
有 趣 的 是 In s tall S h ield 还 提 供 了 一 些 其 它 的 选 择
- 选
择 一 种 或 多 种 安 装 类 型 然 后 单 击 N e x t 你 会 看 到 如 下 图 所 示 的 P ro je c t W iz a rd - S p e c if y C o m pone n ts 对 话 框
P ro ject W izard 并 不 知 道 你 打 算 安 装 哪 些 组 件 示 例 程 序 使 用 了 P rogra m F ile s S h ared D L L s 和 H e lp F ile s 你 需 要 每 次 选 择 一 个 组 件 类 型 并 定 义 该 组件 类 型 下 的 文 件 组 件 类 型 对 程 序 进 行 了 主 要 部 分 的 划 分 例 如 某 个 用 户 在安 装 时 希 望 安 装 所 有 的 示 例 文 件 但 不 安 装 帮 助 文 件 组 件 类 型 并 不 需 要 指 出具 体 由 哪 些 文 件 完 成 该 组 件 的 任 务 而 是 让 用 户 选 择 把 不 同 组 件 中 的 文 件 安 装在 同 一 目 录 或 不 同 的 目 录 下
技 巧 可 以 根 据 需 要 增 加 新 的 组 件 类 型 例 如 如 果 是 数 据 库 应 用 程 序 需要 加 入 Database F ile 组 件 作 起 来 很 简 单 单 击 A d d 按 钮 向 导 会自 动 加 入 新 的 列 表 项 输 入 组 件 名 称 按 ENTER 键 就 行 了
-
选
取 E x a m p le F ile s 单 击 D e le te P ro ject W izard 会 删 除 该 组 件 类 型
-
根
据 需 要 增 加 删 除 组 件 类 型 单 击 N e x t 你 会 看 到 如 下 图 所 示 的 P ro je c t W iz a rd - S p e c if y F ile G roups 对 话 框
示 例 程 序 使 用 了 P ro g ram E x e c u tab le F i le s H e lp F ile s 和 S h ared D L L s 正常 情 况 下 你 会 创 建 一 些 文 件 组 以 便 完 成 特 定 任 务 所 需 的 所 有 文 件 能 一 次 拷贝 到 目 的 地 文 件 组 不 受 组 件 类 型 的 限 制 例 如 拼 写 检 查 和 语 法 检 查 都 依 赖于 同 样 的 DL L 文 件 集 但 使 用 的 规 则 不 同 你 可 以 将 DL L 定 义 为 一 个 共 用 的文 件 组 规 则 文 件 分 别 定 义 为 另 外 两 个 组 如 果 用 户 选 择 了 拼 写 检 查 In s tall S h ield
就 会 拷 贝 相 应 的 规 则 组 和 通 用 DL L 文 件 组 但 不 会 复 制 语 法 检 查 文 件 组
-
选
取 P rogra m D L L s 单 击 D e le te 选 取 E x a m p le s F ile s 然 后 单 击 D e le te 删 除 本 示 例 程 序 中 不 需 要 的 两 个 文 件 组 显 然 文 件 组 的 选 择 取 决 于 程 序 的 组 织方 式 所 需 文 件 的 复 制 位 置 请 谨 记 同 一 文 件 组 中 的 所 有 文 件 都 将 拷 贝 到 硬盘 的 同 一 个 目 的 目 录 下
-
根
据 需 要 增 加 删 除 文 件 组 类 型 单 击 N e x t 你 会 看 到 如 下 图 所 示 的
P ro ject W iza rd - S u m m ar y 对 话 框
这 时 应 检 查 所 列 清 单 保 证 正 确 无 误 然 后 再 开 始 生 成 安 装 程 序
- 单
击 F in is h In s tall S h ield 用 所 选 定 的 选 项 生 成 安 装 程 序 界 面 会 变 为 如图 16 .2 所 示 的 样 子 注 意 这 时 你 会 看 到 创 建 安 装 程 序 所 需 的 C+ + 源 代 码 你 可以 像 修 改 其 它 工 程 那 样 对 这 个 工 程 进 行 修 改
注 释 不 要 以 为 InstallS hield 生 成 的 源 代 码 文 件 与 普 通 工 程 生 成 的 源 代码 文 件 完 全 一 样 实 际 上 它 生 成 的 文 件 中 有 些 是 你 从 未 见 过 的 辅 助性 文 件 比 如 安 装 规 则 文 件 SETUP.RUL 如 图 16.2 所 示
图 16 .2 建立了工 程文件之后 In s ta llS h ie ld 会自动生 成并显示结果 源代码
这 时 就 有 了 一 个 空 白 的 安 装 程 序 外 壳 还 需 要 作 很 多 的 配 置 我 们 将 在下 节 阐 述 最 重 要 的 是 要 看 到 整 个 过 程 中 几 乎 没 有 写 什 么 代 码 在 定 义 了 各 种安 装 程 序 元 素 之 后 In s ta l l S h ie ld 就 替 你 实 现 了
Web 链 接 如 果 使 用 InstallShi eld 还 有 问 题 有 许 多 方 法 可 以 得 到 帮 助这 时 最 需 要 读 一 下 README 文 件 其 中 含 有 许 多 Internet 地 址 例 如新 闻 组 站 点http://sup port.installshield.c om/newsgroups/defaul t.asp 它链 接 到 了 几 个 InstallShi eld 专 题 的 新 闻 组 只 需 单 击 一 下 在 你 的新 闻 阅 读 器 中 就 会 建 立 一 个 新 的 文 件 夹 甚 至 对 Free Edition 版 也有 专 门 的 新 闻 组 地 址 为 installshi eld.is5.free-edtion 还 可 以找 到 讨 论 I D E 脚 本 和 多 媒 体 用 法 的 新 闻 组 总 而 言 之 这 些 新 闻 组提 供 了 与 其 它 程 序 开 发 者 交 流 使 用 打 包 程 序 成 功 打 包 应 用 程 序 的 经验
设 置 组 件
首 要 的 任 务 是 设 置 各 种 组 件 组 件 是 安 装 过 程 中 出 现 的 选 择 项 如 果 以 前用 过 定 制 安 装 就 会 很 清 楚 它 们 是 一 系 列 的 复 选 框 这 些 复 选 框 让 你 选 择 是否 安 装 某 个 程 序 项
配 置 组 件 相 对 比 较 容 易 单 击 C o m pone n ts 选 项 卡 你 会 看 到 如 下 图 所 示 的
C o m pon e n ts - P rogra m F ile s 对 话 框
组 件 对 话 框 中 包 含 了 所 选 组 件 的 完 整 清 单 这 里 有 三 个 组 件 P ro g ra m F ile s
H e lp F ile s S h ared D L L s 在 阅 读 下 一 节 之 前 必 须 全 部 设 置 这 三 个 组 件 双击 D e s c r ip t io n 属 性 你 会 看 到 如 下 图 所 示 的 P rope r t ie s 对 话 框
其 它 所 有 的 属 性 对 话 框 与 该 对 话 框 相 似 每 个 属 性 对 话 框 都 用 来 描 述 要 用该 属 性 完 成 什 么 任 务 也 可 以 输 入 属 性 的 值 本 例 中 输 入 为 A ll th e f ile s re q u ire d to ru n th e a p p lic a tio n 完 成 后 单 击 OK D e s c r ip t io n 属 性 就 包 含 了 所 输 入 的 内 容
不 需 要 改 变 所 有 的 组 件 属 性 真 正 修 改 你 进 行 的 修 改 取 决 于 所 建 立 的 应用 程 序 的 打 包 类 型 例 如 对 于 公 司 内 部 应 用 程 序 一 般 不 允 许 用 户 选 择 要 安装 的 组 件 所 以 没 必 要 定 义 组 件 描 述 但 是 无 论 选 择 何 种 打 包 模 型 有 些 属性 都 需 要 修 改 下 面 我 们 逐 一 讨 论
Status Text 状 态 文 本 这 些 文 字 是 在 安 装 程 序 向 目 标 盘 拷 贝 文 件时 用 户 看 到 的 提 示 P rogre s s 对 话 框 将 显 示 一 些 类 似 于 C o p y ing p rogra m file s ... 的 提 示 这 些 提 示 适 用 于 缺 省 组 件 对 定 制 组 件 来 说 你 或 许想 给 出 一 些 特 殊 信 息
Installati on 安 装 如 果 遇 到 过 自 己 的 最 新 版 本 的 D LLs 被 其 它 程序 覆 盖 的 情 况 你 就 会 切 身 体 会 到 这 个 属 性 的 重 要 性 该 选 项 告 诉In s ta l l S h ie ld 在 覆 盖 文 件 之 前 你 是 否 想 先 检 查 它 的 时 间 戳 我 总 是 使 用NE W E R V E R S ION /NE W E R DAT E 或 S A M E OR NE W E R V E R S ION
/ S A M EO R N EW ER D A T E 选 项 来 代 替 缺 省 的 AL W AYS O V E R W R IT E 规
则 实 际 上 这 些 选 项 告 诉 In s ta l l S h ie ld 仅 当 所 装 文 件 比 硬 盘 中 现 有 文件 日 期 更 新 或 版 本 更 高 时 才 覆 盖 原 文 件
Destinatio n 目 的 所 有 应 用 程 序 文 件 的 标 准 安 装 位 置 是 目 的 目 录它 由 用 户 选 择 然 而 有 些 情 况 下 使 用 用 户 设 定 的 目 录 会 浪 费 盘 空 间 例如 大 多 数 V is u a l C + + 程 序 运 行 时 要 求 C 运 行 时 库 文 件 和 M F C 文 件
如 果 每 个 应 用 程 序 都 把 它 们 打 包 后 安 装 到 自 己 的 目 录 下 硬 盘 空 间 该 是多 大 的 浪 费 啊 因 此 总 是 把 这 些 共 享 的 D LLs 放 在 W ind ow s S Y S T E M 目 录 下 这 时 就 要 更 改 这 个 属 性 打 开 属 性 对 话 框 时 会 看 到 可 供 拷 贝的 所 有 映 射 地 址 选 中 需 要 的 那 个
必 需 的 组 件 在 这 里 设 置 组 件 间 的 关 系 如 下 图 所 示 图 中 我 告 诉In s ta l l S h ie ld 当 用 户 安 装 P ro g ra m F ile s 组 件 时 他 或 她 也 必 须 安 装 S h ared D LLs 组 件 只 有 在 没 有 S h ared D L L s 组 件 程 序 就 不 能 正 常 运 行 的 情 况下 定 义 组 件 间 的 关 系 才 有 意 义
技 巧 如 果 你 打 算 在 Internet 或 Intranet 上 安 装 应 用 程 序 那 么 请 特 别留 意 FTP Locati on 和 HTTP Locat ion 属 性 这 些 属 性 使 用 户 可 以 从W e b 链 接 开 始 安 装 并 从 W e b 服 务 器 上 拷 贝 所 需 的 文 件 如 果 安 装 文件 处 于 F T P 服 务 器 的 控 制 之 下 那 么 一 般 选 用 FTP Locati on 属 性
配 置 组 件 时 最 后 一 个 绝 对 必 须 留 意 的 属 性 是 In clu d e F ile G ro u p s 属 性 直 到现 在 我 们 还 没 有 给 P rogra m F i le s 或 其 它 组 件 指 定 任 何 东 西 双 击 该 属 性你 会 看 到 如 下 图 所 示 的 P rope r tie s 对 话 框
P rope r tie s 对 话 框 包 含 了 指 定 给 某 个 组 件 的 所 有 文 件 组 的 清 单 前 面 我 们 讲过 一 个 例 子 安 装 时 可 以 选 择 用 拼 写 检 查 还 是 用 语 法 检 查 它 们 的 D LL 文 件相 同 规 则 文 件 不 同 前 面 我 还 讲 到 过 要 设 置 三 个 文 件 组 一 个 带 有 语 法 检 查规 则 文 件 一 个 带 有 拼 写 检 查 规 则 文 件 第 三 个 带 有 通 用 的 DL L 文 件 现 在 就是 设 定 其 间 关 系 的 时 候 了 单 击 A d d 按 钮 你 会 看 到 如 下 图 所 示 的 A dd F i le G ro u p 对 话 框
正 如 你 所 看 到 的 A dd F ile G roup 对 话 框 包 含 了 我 们 使 用 P ro ject W izard 定义 的 三 个 文 件 组 在 继 续 阅 读 本 章 之 前 你 需 要 按 下 表 定 义 组 件 与 文 件 组 之 间
的 关 系 表 16 .1 给 出 了 本 例 所 用 的 设 置
表 1 6. 1 Sngl _Doc 安 装 程 序 的 组 件 设 置
组件 |
属性 |
取值 |
---|---|---|
P ro g ra m F ile s |
D e s c r ip tio n |
A ll th e file s re q u ire d to ru n th e a p p lic a tio n . |
S ta tus T e xt |
C opy ing P rogra m F i le s ... |
|
O v e rw rite |
S A M E OR NE W E R V E R S ION/ S A M E OR NE W E R DAT E |
|
R e q u ire d C o m p one n ts |
S ha re d D L L s |
|
In c lu d e d F ile G ro u p s |
P ro g ra m E x e c u ta b le F ile s |
|
H e lp F ile s |
D e s c r ip tio n |
F ile s th a t s h o w y o u h o w to u s e th e pro g ra m . |
S ta tus T e xt |
C opy ing H e lp F i le s ... |
|
O v e rw rite |
S A M E OR NE W E R DAT E |
|
In c lu d e d F ile G ro u p s |
H e lp F ile s |
|
S h a re d D L L s |
D e s c r ip t io n |
C om m on f i le s us e d b y th e p rogra m . |
S ta tus T e xt |
C opy ing S h a re d D L L s ... |
|
O v e rw rite |
S A M E OR NE W E R V E R S ION/ S A M E OR NE W E R DAT E |
|
D e s tin a tio n |
< W IN S Y S D IR > |
|
In clu d e d F i le G ro u ps |
S h ared D L L s |
设 置 文 件 组
建 立 一 系 列 的 组 件 对 安 装 程 序 并 没 有 多 大 的 帮 助 它 只 是 告 诉 用 户 哪 些 组件 可 以 被 复 制 到 硬 盘 上 但 还 没 有 告 诉 安 装 程 序 要 复 制 哪 些 文 件 现 在 我 们 就来 做 这 件 事 — — 为 前 面 定 义 的 文 件 组 定 义 一 系 列 文 件
先 单 击 F ile G roups 选 项 卡 你 会 看 到 带 有 所 有 文 件 组 清 单 的 F ile G roups 对话 框 如 图 16 .3 所 示 选 择 要 配 置 的 文 件 组 很 容 易 单 击 窗 口 左 边 给 出 的 文 件组 列 表 项
单 击 H e lp F ile s 文 件 夹 旁 边 的 加 号 + 标 记 再 单 击 L inks 列 表 项 你 会看 到 如 下 图 所 示 的 F ile G roups - H e lp F i le s \ L inks 对 话 框 从 这 个 对 话 框 中 定 义 该文 件 组 包 含 的 一 个 或 多 个 文 件
右 击 F ile G ro ups - H e lp F ile s \ L inks 对 话 框 从 上 下 文 相 关 菜 单 中 选 择 In s e rt F ile s 你 会 看 到 标 准 的 打 开 文 件 对 话 框 找 到 第 15 章 建 立 的 S ng l_D oc . H L P 文 件 单 击 OK 就 将 它 加 入 了 H e lp F ile s 文 件 组 中 还 需 要 把 S ng l_D oc . E X E 文 件 加 入 到 P rogra m E x c u ta b le F i le s 文 件 组 最 后 一 个 文 件 组 是 S h ared D L L s
需 要 加 入 下 列 文 件 M F C 42 .D L L 和 M S V CRT . D L L 它 们 将 放 在 W ind ow s SY ST E M 文 件 夹 下
图 16 .3 使用 F ile G ro u p s - H e lp F ile s 对话框配 置前面定义过 的每个文件组
定 义 资 源
到 此 为 止 我 们 已 经 设 置 了 组 件 和 文 件 组 下 面 要 给 用 户 提 供 一 些 标 识 信息 因 为 他 们 当 然 希 望 对 所 安 装 的 程 序 有 所 了 解 选 取 R e s ourc e s 选 项 卡 你 会看 到 如 图 16 .4 所 示 的 R e s ourc e s 窗 口 其 中 含 有 两 个 对 话 框 R e s ourc e s - S tr ing Ta b le 和 R e s ourc e s - S tr ing T a b le \ E ng lis h 我 们 要 在 R e s ourc e s - S tr ing T a b le \ E ng lis h 对 话 框 中 进 行 修 改
在 R e s ourc e s - S tr ing T a b le \ E n g lis h 对 话 框 中 进 行 的 绝 大 多 数 修 改 并 不 影 响 安装 程 序 修 改 的 目 的 是 为 了 帮 助 用 户 理 解 安 装 程 序 进 行 的 工 作 改 变 资 源 值 的做 法 和 其 它 对 话 框 改 变 属 性 的 做 法 基 本 相 同 只 是 双 击 要 改 变 的 Id e n t ifie r 标识 符 In s tall S h ield 就 会 显 示 相 应 的 对 话 框 供 修 改 下 图 是 修 改C O M P A N Y _ N A M E 标 识 符 的 示 例
图 16 .4 In s ta l l S h ie ld 几乎与 V is u a l C + + 相同的方 式使用资源
表 16 .2 是 我 们 对 示 例 程 序 所 做 的 修 改 显 然 各 标 识 符 的 取 值 依 据 安 装程 序 的 不 同 而 不 同
表 1 6.2 Sngl _Doc 安 装 程 序 的 字 符 串 值
标识符 |
取值 |
---|---|
C O M P A NY _ NAM E |
A S a m p le C o mp a n y |
P R O DUC T _ KE Y |
S n g l_ D o c .E XE |
P R O DUC T _ NAM E |
S in g le Do c u m e n t A p p l ic a tio n E x a m p le |
UN INS T _ D IS P L A Y _ NAM E |
S in g le Do c u m e n t A p p l ic a tio n E x a m p le |
UN INS T _ KE Y |
S n g l_ D o c .E XE |
决 定 安 装 介 质 类 型
现 在 我 们 要 做 配 置 安 装 程 序 必 须 完 成 的 最 后 一 件 事 了 就 是 告 诉 In s tall S h ield 要 使 用 何 种 介 质 发 行 你 的 应 用 程 序 在 绝 大 多 数 情 况 下 你 会 使 用 CD 作 为 主要 的 发 行 介 质 如 果 应 用 程 序 很 小 的 话 也 可 以 使 用 软 盘 作 为 另 一 种 发 行 方 法如 果 你 只 是 选 择 CD 作 为 唯 一 的 发 行 介 质 那 么 现 在 你 不 用 再 做 什 么 了 否 则的 话 选 择 M e d ia 选 项 卡 你 会 看 到 如 图 16 .5 所 示 的 M e d ia 对 话 框 及 窗 口
图 16 .5 用 M e d ia 选项卡可 以定义除 CD 以外的发 布介质
正 如 你 所 看 到 的 CD 已 经 定 义 好 了 如 图 16 .5 的 CD 文 件 夹 所 示 需要 用 M e d ia B u ild W izard 向 安 装 程 序 中 加 入 其 它 的 介 质 类 型 下 面 的 步 骤 用 于
增 加 软 盘 介 质 类 型
- 单 击
M e d ia B u ild W iz a rd 选 项 你 会 看 到 M e d ia B u ild W iz a rd - M e d ia N a m e
对 话 框 如 下 图 所 示
- 输
入 3 .5" F lopp y 后 单 击 N e x t 你 会 看 到 如 下 图 所 示 的 M e d ia B u i ld W iz a rd
- D is k T y p e 对 话 框 请 注 意 In s ta llS h ie ld 支 持 各 种 各 样 的 介 质 类 型 其 中 包 括
2 .88M B 软 盘
- 选 取 3 .5" D is k e tte - 1 .44M B y te 选 项 然 后 单 击 N e x t
你 会 看 到 如 下 图 所示 的 M e d ia B u ild W iz a rd - B u i ld T y pe 对 话 框
选 择 F u ll B u ild 选 项 时 系 统 将 压 缩 应 用 程 序 中 包 含 的 所 有 文 件 建 立 CA B
文 件 并 创 建 全 功 能 的 安 装 程 序 Q u ic k B u ild 选 项 用 于 测 试 安 装 程 序 是 否 正 确
- 选
择 F u ll B u ild 选 项 然 后 单 击 N e x t 你 会 看 到 如 下 图 所 示 的 M e d ia B u i ld W iz a rd - T a g F i le 对 话 框 从 这 里 输 入 公 司 名 称 及 相 关 的 应 用 程 序 信 息
- 在
这 个 对 话 框 中 输 入 所 有 需 要 的 信 息 示 例 程 序 在 C o m p a n y N a me 域 使用 的 是 A BC Co rp o ra tio n 在 A pp lic a tion N a m e 域 使 用 的 是 S ing le D o c u m e nt A pp lic a t ion E x a m p le 在 P roduc t C a te gory 域 使 用 的 是 W o rd P ro c e sso r 在 M is c .
域 使 用 的 是 |
U tility S ty le T e x t E d i to r |
||||
---|---|---|---|---|---|
6. 单 击 |
N e x t 你 会 看 到 如 下 图 所 示 的 |
M e d ia |
B u ild |
W iz a rd |
- P la tfo rm s 对 话 |
框
- 单
击 N e x t 你 会 看 到 如 下 图 所 示 的 M e d ia B u ild W iz a rd S u m m a ry 对 话 框这 是 验 证 所 有 设 置 正 确 性 的 最 后 机 会
- 检
查 所 有 设 置 正 确 无 误 后 单 击 F in is h In s tall S h ield 创 建 新 的 你 所 需要 的 安 装 程 序
注 释 InstallS hield 的 Free Editi on 版 此 时 会 显 示 一 条 错 误 信 息 指 示没 有 足 够 的 内 存 来 创 建 安 装 程 序 可 以 忽 略 这 个 问 题 然 后 重 试 如果 还 不 正 确 使 用 缺 省 的 安 装 设 置 进 行 创 建 做 法 是 右 击 Default
文 件 夹 从 上 下 文 相 关 菜 单 中 选 择 Media Build Wizard 在 Media Build Wizard 对 话 框 的 第 一 个 显 示 中 选 择 Default 选 项 然 后 单 击 Next 直 到 不 再 出 现 错 误 消 息 按 Finish 按 钮 InstallShi eld 创 建 所 需介 质 类 型
这 时 你 会 看 到 B u ild ing M e d ia 对 话 框 In s ta l l S h ie ld 自 动 创 建 安 装 程 序 安装 程 序 创 建 后 B u ild ing M e d ia 对 话 框 如 下 图 所 示 只 需 单 击 F in is h 按 钮 这 下就 全 部 完 工 了