四、设置安装的组件Component

打开【Installation Designer】->【Component】面板,先删掉默认的DefaultComponet,下面开始逐个添加Component。

右击【Component】新增【New Component】,命名为APP_1,与上面文件夹名对应,这里是不可以用中文的。

这 里先指定APP_1的安装路径,点击APP_1,选择右侧【Destination】,会弹出【Browse for Directory】,这里可以看到【ProgramFilesFolder】就是指C盘下的Program File。现在的目录比较乱,先删除掉【My Company Name】和【My ProductName】,然后再在【XX产品】下新建【APP_1】,这个路径就是APP_1中的文件将要安装到的路径了。

注 意,这里你点击【XX产品】,会看到INSTALLDIR,但不能修改,你可以点击【Installation Designer】->【Installation Information】->【General Information】,查看到INSTALLDIR,也是可修改的。你可能还会看到变量TARGETDIR,这个是安装过程中让用户选择的安装路径。 而在InstallScript MSI和Basic MSI工程中,安装路径变量是INSTALLDIR。

然后选择Files,在右侧面板中点击【Add】,添加文件,可以选择也可以直接拖进来。

同样,新增【APP_2】组件,与上面一样也要指定Destination。

然 后添加文件,这里我故意多加了个Folder的文件夹,上面的单目录结构,直接拖进去就可以了,但是多目录结构是不行的,需要右击选择【Dynamic File Linking】,然后打开【Modify Dynamic Links】面板,再点击【New Link】,打开【Dynamic File Link Settings】面板,然后点击【Browse】,选择App_2的文件夹,再确定就添加成功了。

还有一些和APP1、APP2同级的文件放哪呢,我们再新建一个ROOT的Component用来链接它们。

这里我们不需要指定destination了,因为这些文件是需要装在【XX产品】下的。

五、创建快捷方式

打开【Installation Designer】->【Component】面板,这里将创建APP1、APP2的桌面快捷方式,和APP1、APP2、Root的开始菜单快捷方式。

点击【APP_1】的【Shortcuts】

上图【Programs Menu】即对应的”所有程序”,【Desktop】即桌面。

右 击【Programs Menu】,选择【New Folder】来新建结构”XX公司->XX产品”。然后,再右击【XX产品】,选择【New Shortcut】,找到DemoApp_1.exe,点击【Open】,即会创建快捷方式。然后可以通过右击选择【Rename】来修改名称,通过 【Change shortcut icon】来修改快捷图标。

同 样,按照上面的步骤来新建其他的快捷方式。但是你在创建APP_2的快捷方式的时候,你会发现找不到APP_2.exe,这是因为APP_2是通过动态链 接加入进来的,所以需要重新在【File】下,将原来的APP_2.exe的链接单独加进来。右击不能删除,直接将APP_2拖进来覆盖就可以了,图标和 之前不一样了。

这里DataBaseSetting.exe我没有创建桌面快捷指示创建了开始菜单,避免桌面图标过多,具体根据实际情况。

最后,我们在跳转到面板【Project Assistant】->【Application Shortcuts】,点击左侧的【Create an uninstallation shortcut】即会创建一个卸载的快捷方式。

在回到【Installation Designer】->【Component】面板,会看到多了一个【NewComponent1】,这个组件就是卸载程序的组件,我们先把名字改成Uninstall,把快捷方式的nameh改成中文。

还有把卸载的Display Name也需要修改掉,直接改好像总是不起作用,直接点击【…】打开Select String面板,将原来的删除掉,新增一个String。

六、创建特性Features

打 开【Installation Designer】->【Organization】->【Feature】,在这里我们将创建特性Feature,我们经常安装程序的时候 会看到用户可选择的安装项,这些其实就是Feature,安装包的安装就是针对Feature来安装的。上面我们已经建好了Component,这里继续 为每一个component建一个Feature。

删除掉默认的DefaultFeature,在新建Feature. 这里和component一样不能用中文,但你可以把右侧的Display Name修改为中文,这就是让用户勾选时,显示的名字

另外,Root和Uninstall这两个Features,我们是不打算让用户选择安装的,而是默认就会装的,所以把这两个Features的Display设置为Not Visible

接下来就是要让这些Feature与Component关联起来。

打开【Installation Designer】->【Organization】->【Setup Design】面板

选中APP_1,右击选择【Associate Component】,然后再弹出的对话框中选则APP_1的Component,这样就关联上了。

到这里你可以先编译一下看看效果了,点第一个红色按钮,编译,第二个将打开编译后生成文件所在文件夹。点击“setup.exe”就可以安装了。如果你重新点击【build】,如果提示错误,可能是你没有把生成的setup所在的文件夹关闭掉。

安装已经基本成型了,但是这种皮肤、安装步骤都不一定符合我们实际的需求,所以我们都会去修改定制,下面说一下我的修改内容。

七、皮肤

打开【Installation Designer】->【User Interface】->【Dialogs】面板

点击【Dialogs】,可以看到Skins,这就是各种不同的皮肤,这里我改为“BlueTC”

下面的【All Dialogs】,就是我们在安装过程中所看到的一个个对话框

InstallShield详细制作说明(二)的更多相关文章

  1. InstallShield详细制作说明(一)

    虽然网上关于InstallShield的制作说明已经很多,但是看的时候还是会有些晕乎乎的,不得不说很复杂.前段时候做了一次,后面需要升级,在重新做的时候发现有些地方自己又忘了,所以有必须将自己看的教程 ...

  2. InstallShield详细制作说明(三)

    八.许可协议 打开[Installation Designer]->[Behavior and Logic]->[Support Files/Billboards]面板 这里[Langua ...

  3. InstallShield详细制作说明(四)

    十.编译打包

  4. thinkPHP 模板中的语法知识 详细介绍(十二)

    原文:thinkPHP 模板中的语法知识 详细介绍(十二) 本章节:介绍模板中的语法,详细的语法介绍 一.导入CSS和JS文件    ==>记住常量的是大写 1.css link .js  sc ...

  5. SQL Server 2008 R2 性能计数器详细列表(二)

    原文:SQL Server 2008 R2 性能计数器详细列表(二) SQL Server Buffer Partition 对象: 提供计数器来监视 SQL Server 如何使用可用页 SQL S ...

  6. 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型

    010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...

  7. InstallShield 12 制作安装包

    目  录 一. 二. 三. (一) 打开project... 2 (二) project助手页面... 3 1.Application Information:程序信息... 4 2.Installa ...

  8. [Android Pro] Android签名与认证详细分析之二(CERT.RSA剖析)

    转载自: http://www.thinksaas.cn/group/topic/335449/ http://blog.csdn.net/u010571535/article/details/899 ...

  9. UCOS2_STM32F1移植详细过程(二)

    Ⅰ.概述 打开上一篇文章新建的工程,是提取的ST标准库里面源代码文件和UCOS工程包源代码文件.下载过的朋友可能会知道,直接编译那个工程会有大片的错误和警告,原因在于那个工程是没有经过修改源代码的工程 ...

随机推荐

  1. iOS framework配置脚本

    # Sets the target folders and the final framework product. FMK_NAME=HovnVoipEngine FMK_VERSION=1.0 # ...

  2. (iOS)确保设置话筒模式成功 AudioSessionSetProperty

    本人编写过一个应用,须要把实时音频播放出来,而且要从话筒播放声音,为此,作下面操作: //Step 1: 初始化 AudioSessionInitialize(NULL,NULL, NULL, sel ...

  3. HDU 3853 向下向右找出口问题-期望dp

    题意:初始状态在(1,1)的位置.目标是走到(n,n).每次仅仅能向下向右或者不移动.已知在每一个格子时这三种情况的概率,每移动一步消耗2的魔力,求走到终点的使用的魔力的期望. 分析:简单的期望dp, ...

  4. VS链接数据库

    可以用VS链接数据库,并进行数据库操作.前提是安装了Sqlserver,活着连接线上的数据库服务器.

  5. 分贝(dB)的理解

    分贝(dB,decibels)表达的是功率比(power ratio,P2/P1),而不是一个amount,P2>P1,分贝为正值,否则为负值.分贝是对数形式的,而不是线性形式的,也即 20 d ...

  6. 分享一下vue ui的分页的用法

    var newToAddLeave = function(){ var goIndex = { template:` <i-table :columns="overTimeList.c ...

  7. 【js基础】判断是否是合法邮箱地址(正则表达式的应用)

    2019-01-21 09:11:21 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...

  8. 客户端本地存储(cookie、web Storage、vuex)选择

    一.cookie .localStorage .sessionStorage .vuex 比较 cookie   4K    有时效性    可服务器传递 cookie是由服务器产生,存储在客户端的一 ...

  9. 今日SGU 5.17

    SGU 119 题意:给你一个0-15组成的4*4的矩形,问你能不能回到正常 收获:把矩形变成一维数组,然后判断当前矩形状态到目标状态(逆序对为15)逆序对和0到目标的奇偶性是否不相同,证明题,引荐大 ...

  10. &lt;LeetCode OJ&gt; 20. Valid Parentheses

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...