当前位置:文档之家› InstallShield_2010_打包实例

InstallShield_2010_打包实例

InstallShield_2010_打包实例
InstallShield_2010_打包实例

第一部分:基本设置 (1)

新建Installscript MSI Project (1)

引导动作条 (2)

1. Application Information (2)

2. Installation Requirement (3)

3. Installation Architecture (3)

4. Application Files (5)

5. Application Shortcuts (7)

6. Application Registry (9)

7. Installation Location (10)

8. Build Installation (11)

第二部分:XML文件修改 (11)

第三部分:自定义对话框 (16)

第四部分:安装windows服务 (18)

一、脚本方式 (18)

二、视图配置方式 (21)

添加Install Service组件 (21)

添加Control Service组件 (24)

第五部分:脚本编程 (26)

Setup.rul文件头部 (27)

OnFirstUIBefore (28)

OnFirstUIAfter (31)

SetTomportInfo (34)

完整脚本代码 (36)

第六部分:参考文章 (43)

注:我使用的是Installshield 2010 Premier Edition,安装后自行汉化,所以有部分截图有中文;

2010 SP1的官方下载地址:

https://www.doczj.com/doc/8112137722.html,/product/is/2010/domestic/premier/installS hield2010.exe

第一部分:基本设置

新建Installscript MSI Project

打开Installshield 2010 Premier Edition,新建一个Installscript MSI Project,这种被称之为半脚本程序,因为兼具Basic Project基本类型和Installscript Project全脚本类型两者的优点。

选择类型为Windows Installer | InstallScript MSI Projcet,输入工程名,指定工程所在的文件夹。

界面会切换到Project Assistant,我们先从这里开始把工程的基本组件和基本文件建立好。

引导动作条

在Project Assistant界面的底部,会有一个引导动作条,在建立该工程的基本结构和文件时,我们都将在此界面进行操作,下文都将以“引导条”来指代这个引导动作条。

1.Application Information

这里输入:

公司名,公司名将会出现在Setup.exe的注解中

软件名,将会出现在安装过程的左上角标题栏上

版本号,软件版本

公司网址,必填

选择一个图标,这个图标会出现在“添加或删除程序”里,一般用默认的,当然可以替换成自己想要的图标。

2.Installation Requirement

这里选择对操作系统和一些软件的需求。根据自己需要来选择是否要求操作系统的版本,以及是否要求安装了某些软件。

3.Installation Architecture

这是个十分有用的设置,对于本文所用的分布式软件来说非常合适,分布式软件的每个组件可以设置为一个Feature,用户可以自由选择安装某些功能。

将选项Do you want to customize your Installation选择为Yes。

点击选中根节点Installation Architecture,点击New创建新的Feature,可以为每个Feature 指定新名称。

还可以在Feature下创建子Feature,比如如果文档Feature下包括软件本身文档,和软件所需的运行环境的文档,那么可以创建两个子Feature,分别包含两种文档,用户在安装时就可以选择安装部分或者全部文档了。这里我们没有用到子Feature,用途和普通Feature 一样。

这里,建立好所有Feature后,我们将切换到Installation Designer做一个设置

找到Installation Designer页面上左边导航树Organization | Features分支,你会看到这里Features都显示为原始的名称,而非我们改过的名字,因为Feature有Name和Display Name 两种名称,我们刚才改的不过是Display Name,为了便于查看和使用,我们在这里把Name 也改一下。

注意:Name不可以有空格,可以使用下划线。

4.Application Files

我们将在这里对安装路径进行微调,并且为每个Feature指定需要安装的文件。

这里不想使用Program Files | Company Name | Product Name这个路径,想使用Program Files | Product Name,直接点击选中My Product Name[INSTALLDIR]拖动到ProgramFileFolder下,还可以直接将My Product Name 改成自己想要的文件夹名字,这里改为CKMH。

接下来,为每个Feature指定要安装的文件。

打开下拉列表,所有的Feature都在这里,按顺序来给每一个Feature建立文件夹,并且导入所需的文件。

选择一个Feature,即ckmh,点击CKMH [INSTALLDIR]节点,右键点击,在菜单上选择New Folder来创建一个文件夹。

创建一个tomcat7文件夹,依次创建文件夹及子文件夹,然后为该Feature添加安装时该Feature要安装的文件。

点击选中要添加文件的文件夹,然后点击右下角的Add Files,然后添加文件。

接下来为Feature添加文件夹,如果这个文件夹中的全部文件都为这个Feature所需。添加文件夹的好处在于只要文件夹位置和名称不变,那么文件夹里面的文件都是动态加载的,有多少加载多少,不用考虑文件名的改动带来的影响。

点击选中要添加文件夹的文件夹,然后点击右下角的Add Folders,然后添加文件夹。

选中文件夹,点击确定。

会询问你是否要使用动态文件链接,选择确定,好处就在于刚才上面所述。

显示了源文件夹,如果这个文件夹下有子文件夹,并且也需要一并添加进来的话,务必钩选Include subfolders选项。

这里还允许做一些简单设置来包含或者排除一些特定文件,支持通配符。

点击OK确定加入文件夹。

如法炮制为每个Feature建立文件夹,并且添加文件。

5.Application Shortcuts

接下来为可执行文件创建快捷方式。

点击New新建一个快捷方式

选择一个要建立快捷方式的Feature。

如果要建立快捷方式的程序为非.exe形式,请把Files Of选择选为All Files(*.*)格式。

程序安装目标路径设置在Program Files下,因此双击[ProgramFilesFolder]打开,层层点击进入。

这里要为startup.bat建立一个快捷方式。

选中快捷方式,点击Rename,并且为这个快捷方式改一个适当的名字。

Installshield可以自动监测到.exe文件的存在,自动生成快捷方式,用户只需要做一些适当修改即可。

免安装版Tomcat7的bin目录下有tomcat7.exe、tomcat7w.exe两个.exe文件,Installshield 会自动为其创建快捷方式,这里已被移除,以下是创建好的快捷方式。

注意右边的几个选项。

Create shortcut in Start Menu,将在开始菜单里创建一个快捷方式。

Create shortcut on Desktop,将在桌面上创建一个快捷方式。

Use alternate shortcut Icon,替换快捷方式的图标。

Associate a file extension with the shortcut’s target,没用过,不知道什么意思。

再切换去Installation Designer,找到System Configuration | Shortcuts。

看到快捷方式在开始菜单中是以公司名|软件名|快捷方式这种形式存在的,这里改成了如下设置:

直接拖动CKMH文件夹往Program Menu(即开始菜单下的那个“所有程序”)下一塞即可,然后删除掉多余的Company Name文件夹。

可能刚才在Project Assistant界面有人已经注意到了左边栏上More Options下Create an uninstallation shortcut这个诱人的字样了。

如果选择了这种方式建立卸载快捷方式的话,会很沮丧地发现:

a) 似乎只有在安装某个feature的时候这个卸载快捷方式才会出现(当然,就是那个default feature,这种要命的feature形式决定了每个文件或者快捷方式都必须明确地归属到某个feature下),因此,当客户只选择了其他feature安装时,这个卸载方式不会出现,而他必须去“添加或卸载程序”里面去卸载。

b) 如果写脚本使得安装时会拷贝一些外部文件进来,那么这些文件在这种卸载方式下是删除不掉的。(如果确实想保存这些文件,可以在脚本里设置它们属性为permanent,这个属性可以保证什么卸载方式都不能删除你的这些文件)。

可以根据软件情况选择这种卸载快捷方式,或者采用后面脚本形式实现的卸载。

6.Application Registry

向注册表写键和键值。有需要的朋友可以查阅相关资料。

在脚本中有一段修改注册表的代码:

7.Installation Location

这个是用来设置安装包的语言。

这里没有改动,使用默认的简体中文。

8.Build Installation

选择要创建的安装映像类型。

至此,第一部分基本完成。如果是一些没有特别要求的安装包,这部分讲解的内容足够可以做一个基本的安装包了。

第二部分:XML文件修改

以修改tomcat7\conf\server.xml 为例:

找到Installation Designer页面上左边导航树System Configuration | XML File Changes 节点,打开XML文件更改界面,

导入原始XML文件,右键点击根节点XML File,选择Import,打开导入向导界面,

点击Browse ,选择需要导入的XML 文件,Next>

选择XML元素,这里全选,点击Import,

点击完成,即可看到导入的XML文件,选中导入的server.xml文件,右侧有配置项,

在General页签,指定该文件在安装文件中的位置,以及所属Feature;

General页签中,其默认值为8080,这里将其改为:[TOM_PORT],(带有括号)。

TOM_PORT是Behavior and Logic | Property Manager 下已经存在的属性。

注:属性定义必须大写,原因不知。

自定义安装界面(参考第三部分)获取用户输入的端口号,通过脚本为该属性赋值,进而改变XML文件中的值。

注:脚本中的数字‘1306’是自定义安装界面中输入框的Control Identifier。

以上为修改XML文件元素属性值,如果是修改元素内容,例如:修改dsn.xml文件中name元素的内容,在右侧Advanced页签中,选中Set element content,设置元素内容,在输入框中输入已定义的属性,如:[NAME],要加方括号,并通过脚本为该属性赋值。

第三部分:自定义对话框

找到Installation Designer页面上左边导航树User Interface | Dialogs 节点,打开Dialo g视图。

1.在Dialogs视图中,右键All Dialog,选择新建对话框(New Dialog);

2.创建一个空白对话框,命名为Tomport.

3.双击MyDlg下的子项即可进入对话框的编辑模式;

注意:点击窗体,显示右侧属性Resource Identifier需要根据需要自己定义,此值会在代码中使用到;需特别注意,为防止与其他的Id冲突,可设置较大一点,其后的ID会根据此ID自动递增。

4.工具栏有各种对话框组件,在工具栏上选择组件,然后在对话框界面上拖拉出相应组件,这里添加一个文本域和一个输入框,右侧可以修改组件属性,注意一下这里的Control Identifer属性值,后面脚本中会用到。

其Control Identifier值会根据Resource Identifier自增(窗体的Id叫Resource Identifier,而组件的Id就称为Control Identifier)然后根据实际需要设计窗体布局。

其他的组件,如:上一步、下一步等,我是从其他已有的对话框中复制过来的,根据需要稍作修改,按钮的Control Identifier值要与其他对话框一样,否则不起作用,不清楚为什么。

注意:在dialog中必须添加一个Control Identifier为2的控件,否则点击右上角Close button的时候,是没有响应的。

界面部分已经完成,还需要写相应脚本,初始化对话框,给文本框赋值,或从文本框取值,具体脚本在第四部分》SetTomportInfo。

第四部分:安装windows服务

一、脚本方式

以Tomcat7注册为windows服务为例,将服务设置为开机启动,安装完成后启动该服务,脚本代码如图:

代码写在OnFirstUIAfter事件中,详细代码见第五章脚本编程》OnFirstUIAfter。

此处是利用免安装版Tomcat自带的service.bat批处理文件,注册服务,将Tomcat注册为windows服务,建议使用脚本方式,视图配置方式不太好用。

代码解释:

①szRegTomcat= INSTALLDIR ^ "tomcat7\\bin\\service.bat";

INSTALLDIR 表示安装路径,tomcat7\bin\service.bat为安装文件(根据实际安装文件目录修改),并且该文件一定要放到SUPPORTDIR 文件夹去,方法如下:

找到Installation Designer页面上左边导航树Behavior and Logic | Support Files / Billboards 节点,将service.bat文件放到Support Files/Language Independent下。

②nAddServer = LaunchAppAndWait(szRegTomcat,"install",WAIT);

执行批处理文件,第二个参数"install"为执行时的参数,表示安装服务,如果返回值小于0,表示安装失败。

③MessageBox ("添加Tomcat服务出错",SEVERE);

消息弹框。

④RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

szKeyRoot = "SYSTEM\\CurrentControlSet\\Services\\Tomcat7" ;

RegDBSetKeyValueEx(szKeyRoot,"Start",REGDB_NUMBER,"2",-1);

修改注册表,服务安装后,启动类型默认为手动,修改注册表将启动类型改为自动,注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat7,将Start 的值改为2(其中2为Automatic自动, 3为Manul手动, 4为Disabled禁用)。

⑤ServiceStartService("Tomcat7","");

启动服务。

注:‘Tomcat7’为服务名,此名称为service.bat文件中的默认服务名,且与tomcat7\bin 目录下的tomcat7.exe、tomcat7w.exe显示名称一致,否则tomcat7.exe、tomcat7w.exe无法使用。

服务安装完成后,要为该服务添加一个控制组件,针对该服务配置组件安装完成和卸载时触发的事件,方法类似下面视图方式的添加Control Service组件,具体步骤如下:

①导航树Organization -> Setup Design 节点,在左边工作区,右击服务所在feature,选择Component Wizard:

②进入Wizard后,选择第2项:Let me select a type and define the com ponent:

③设置组件名称,选择Control Service:

相关主题
文本预览
相关文档 最新文档