四、设置安装的组件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. UMeditor百度富文本编辑器的使用

    批量上传的图片在线管理没法查看图片 是因为jar包本身的Bug,这里暂时做了个替换展示.就是找到Img.js  然后搜索 img.set 替换下就好了 var url=list[i].url ;    ...

  2. java音乐播放之IO流处理

    这个类仅仅能一直播放.知道音乐结束. 比AudioCilp要好一点. import java.io.*; import javax.sound.sampled.*; public class Test ...

  3. Bootstrapbutton组

    button组同意多个button被堆叠在同一行上.当你想要把button对齐在一起时,这就显得很实用. 基本button组 给div加上class .btn-group <!DOCTYPE h ...

  4. Git的日常处理流程

    前提 本地有2个分支,一个是master,还有一个是local master 默认追踪origin/master local 通过git branch -u origin/master来映射 开发的时 ...

  5. node --- 服务一直启动

    使用node xxx.js命令可以开始在服务器运行node.js程序. 可是它会占用终端的当前进程,而且当你离开服务器连接的时候(e.g.关闭终端或者Putty) node.js程序也会退出. 如何让 ...

  6. BZOJ 1578 DP

    思路:裸的完全背包 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> ...

  7. 有关error PRJ0003错误的思考

    作者:朱金灿 来源:http://blog.csdn.net/clever101 今天同事遇到两个编译错误: 项目: error PRJ0003 : 生成"rc.exe"时出错. ...

  8. Vue或React多页应用脚手架

    https://github.com/zhujiasheng/vue-multipage https://github.com/MeCKodo/vue-multipage

  9. 摄像头驱动——V4L2框架分析

    一.概述 Video for Linux 2,简称V4l2,是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口. 摄像头驱动是属于字符设备驱动程序.(分析linu ...

  10. U-BOOT启动流程分析--start_armboot函数(二)

    第二阶段的功能: 初始化本阶段所需的硬件设备(主要设置系统时钟.初始化串口.Flash.网卡.USB) 检测系统内存映射(memory map) 将内核映像和根文件系统映象从Flash上读到RAM空间 ...