Installshield 12 中文系列教程 之 Basic Msi项目(一)

来源:互联网 发布:java 简单加密 编辑:程序博客网 时间:2024/05/18 02:12

Installshield 12 中文系列教程 之 Basic Msi项目(一)

 

×××××××××××××××××××××××××××××××××××××××××××××××
声明:本文为《打包技术网》原创,转载请保留此声明并注明出处,仅供网友学习使用,勿用于商业用途。
作者:棒槌_007
联系方式:QQ 113984419 MAIL:bangchui_007@126.com

说明:本人E文实在一般,文中有翻译不准确的地方,请各位见谅。
×××××××××××××××××××××××××××××××××××××××××××××××


这个部分通过带领你使用
InstallShield新建,编译,运行,来增强使用一个Basic MSI项目的能力。
这个教程划分了一些列的步骤。在第一步后“第一步:建立,编译,测试项目”其他的步骤能够按照任意的顺序单独的运行,所以你可以集中注意力在这个部分的相关的内容上。
在这个教程中,你将要学习到如何完成一个安装程序中要执行的多个任务,包括:
  • 安装文件
  • 设置快捷方式和注册表数据
  • 条件安装数据
  • 注册COM服务程序
  • 更改安装过程中的用户界面
  • 编译发布镜像文件
  • 测试安装

这些内容在的相关链接贯穿整个帮助支持库。

第一步:创建、编译与测试项目

这个步骤示范如何创建一个安装项目,编译发布映像,测试安装程序。完成这些步骤后,你将知道如何:
  • 使用项目助手创建一个新项目
  • 为安装项目配置全局属性
  • 定义功能部件,构件和链接文件
  • 为复制和发布编译映像
  • InstallShield中运行安装程序

Basic MSI安装程序组成部分

一个Basic MSI安装程序由两个层次构成:
  层次
  
  描述
  
  构件
  
  从开发者的角度看一个构件是你的项目中最小可单独安装的部分。一个构件包含文件,快捷方式,注册表数据和其它的要在目标系统上安装的内容。最终用户从不与组件直接接触。
  一个组件能够被用于多个功能区,只要用户选择了最小功能,那么它的关联组件就会被安装到目标计算机上。
  
  功能部件
  
  从用户的视角来看一个功能部件是你的项目中最小可单独安装的部分。如果用户选择了自定义安装类型,那么将有一个可供用户选择安装功能部件的对话框出现。
  每一个功能区都包含组件。
  

教程文件

在安装教程中你将创建和配置的程序叫Tutorial App。它的源文件在InstallShield的安装目录中。默认的路径为C:/Program=Files/Macrovision/IS12/Samples/ISDevTutorial


创建一个新Basic MSI 项目
教程中的第一步是创建一个新的Basic MSI项目。

要创建一个新的Basic MSI项目
1.File菜单中选择New或者点击工具栏上的New Project 按钮,出现New Project 对话框。

2.单击Windows Installer标签选择Basic MSI项目类型
3.在Project Name 输入Tutorial
4.在ProjectLocation 内保留默认的设置

5.勾选Create the project in Project Name subfolder(在项目名称文件夹中创建项目)选项

6.单击OK创建项目转到ProjectAssistant

InstallShield创建一个名为ProjectName.ism的项目文件,在本例中创建的项目文件是Tutorial.ism 。这个项目文件保存你在InstallShield IDE中做的所有设置。要把一个项目移动到其他的系统中,复制这个.ISM文件和它的安装源文件到其他的系统中即可。


技巧:要更改新建项目的默认目录,在Options对话框中的Project Location区域输入新的路径即可。

指定应用程序信息

当你创建了一个新项目,Project Assistant(项目助手)将帮助你指定项目和应用程序信息。在安装助手的第一页将对整个创建安装程序过程提供一个图形化的概述。要开始使用项目助手,单击视图底部的ApplicationInformation 图标。

ApplicationInformation 页你可以指定你的项目中关于程序的常规信息。

在本例中指定应用程序信息:
1.Company Name的地方输入TutorialCo 。在Web Address 中输入自动更新信息。
2.Application Name地方中输入TutorialApp。在Application Name中输入的内容将在对话框中显示给最终用户,并且将显示在用户的添加/删除程序面板中。
3.保留Application Version CompanyWeb Address 的默认值。
4.Application Icon 区域,单击浏览按钮找到Tutorial.exe的位置:在InstallShield的样例目录中的ISDevTutorial子目录中。打开其中的 .exe文件然后选择Icon Index:0

当你完成后你将看到应用程序面板中将显示如下图:

你输入的application namecompany name确定了在Windows Start菜单中显示的默认快捷方式,INSTALLDIR的值用来指定你的程序文件在目标计算机中的位置。

提示:INSTALLDIR默认的值是[ProgramFilesFolder]/公司名/项目名。这个[ProgramFilesFolder]在安装时对应用户的ProgramFiles目录。要查看Windows Installer定义的其他目录属性,查看Windows Installer Property ReferenceInstaller段的SystemFolders设置。


设置安装程序需求


安装程序需求页可以让你轻松的指定安装程序对目标系统的需求。例如,你的安装程序需要制定运行的操作系统,你可以在这个面板的第一部分中指明。

操作系统需求

如果你的应用程序需要Windows2000或者更高的操作系统,你可以选择Yes并选择你的安装程序适合的操作系统。
在本例中,保留 NO 的选择。


软件需求

如果你的安装的程序运行时需要目标系统上有一些特别的软件环境,选择 YES 然后选择软件需求。要自定义当目标系统不满足应用程序的软件需求时的提示信息,单击run-time信息进行编辑。

提示:如果软件需求没有进行选择,那么运行期间信息将不会显示。

自定义安装体系结构

在安装结构页你可以指定你想要安装程序显示给最终用户的功能部件。从用户的角度看,一个功能部件是项目中最小的可以单独安装的部分。当用户在安装期间选择Custom setup(自定义)安装类型是可以看到单独的功能部件。

提示:功能部件可以包含子功能部件,子子功能部件甚至更多,你可以添加你的安装程序所需要的多个层级。

你的安装体系结构当前包含一个默认的功能部件,Tutorial_Files。这个默认的功能部件在用户运行安装程序时总是会安装的。在这个步骤中,你将为安装体系结构添加另一个功能部件。

在本例中,添加一个Help_Files 新功能部件:
1.对于Do you want to customize your Installation Architecture?(你想自定义你的安装程序结构吗?)提问,选择YES
2.右键单击Installation Architecture节点,选择NEW
3.把新功能部件命名为Help_Files

当你完成这个步骤,你的安装结构看起来像下图:

向项目中添加文件
下一步是向安装项目中添加应用程序文件。应用程序文件页可以让你为每一个功能部件添加相关的文件。
在这步中,你将向Tutorial_Files功能部件中添加Tutorial可执行文件。
要向Tutorial_Files功能部件中添加Tutorial可执行文件:
1.页面顶部的功能部件下拉列表中选择Tutorial_Files
2.在目标计算机的树形结构中,选择INSTALLDIR节点
3.单击Add Files ,弹出一个OPEN对话框
4.Tutorial Files源目录中找到Tutorial.exe
5.单击Open添加文件到Tutorial_Files功能部件
6.当出现"The file you have added ... may havedependencies" 提示信息时,单击NoTutorial.exe文件没有依存关系。这个文件已经添加到功能部件中,并且显示在右边的面板中。




创建快捷方式
应用程序快捷方式页可以让你在目标系统的桌面或启动菜单为你的应用程序文件创建快捷方式。默认的,这个页面为你的项目中包含的每一个可执行文件创建一个快捷方式。你可以删除这些,然后为你的项目中的其他文件添加快捷方式。

激活Tutorial.exe的快捷方式:

单击Tutorial.exe图标,保留默认的设置,选中Create shortcut in Start menuInstallShield将在安装程序运行时在用户的开始菜单中创建一个Tutorial.exe的快捷方式。



配置注册表数据


应用程序注册表页可以让你为应用程序的需要配置任何的注册表项。


在本例中,不配置任何注册表项。注册表项将在第二步Shortcuts andRegistry Data中添加。



为安装交互设置对话框


InstallationInterview安装协商)页可以让你指定当最终用户运行安装程序时看到的对话框。在这个页面通过对你的询问,ProjectAssistant(项目助手)将在你的安装项目中添加合适的对话框。

按照下列操作,为本例指定对话框:
1.Do you want to display a License Agreement Dialog?选择NO。如果你选择YES,你可以选择你的许可协议文件。
2.Do you want to prompt users to enter their company nameand user name?—选择YES安装程序将显示一个对话框收集信息。
3.Do you want your users to be prompted to modify theinstallation location of your application?—选择YES更多信息请查看允许最终用户修改安装位置。
4.Do you want users to be able to selectively install onlycertain parts of your application?—选择YES ,更多信息请看创建一个可选择的安装程序。
5.Do you want to give users the option to launch yourapplication when the installationcompletes?—选择YES 找到Tutorial.exe文件,(位于[ProgramFilesFolder]TutorialCo/Tutorial)。当这个选项设置为YES时,安装完成对话框中会有一个选择框允许用户点击Finish按钮后立即执行应用程序。



为安装选择一种语言
InstallationLocalization(安装过程本土化)页面中可以指定安装过程中支持的语言。它也能指定字符串值和关联标识符,让你的安装程序更加轻松的按照你的终端用户所使用的其他语言而本土化。

在本例中,保留English的选择,按照下列步骤,更改功能部件的名称:
1.从列表框中,选择Feature String Data
2.在字符串表格的 Value 列,单击Tutorial_Files(这个值关联着标识符IDS_FEATURE_DISPLAY_NAME2),把它变成Tutorial Files
3.单击Help_Files这个值关联着标识符IDS_FEATURE_DISPLAY_NAME3),把它变成Help Files

提示:更多信息参看,创建多语言安装。

编译安装

当你确定好了安装项目的的结构,添加了程序文件,创建了快捷方式,选择了对话框,你已经准备好编译这个安装程序了。
编译安装程序页可以让你指定想要发布的类型,发布的选项,复制文件的位置。

要编译安装项目你只要:
1.选择CD-ROM选项
2.单击BuildInstallations

输出窗口打开了最主要的Build标签页,显示编译过程中的信息。当Build标签中显示日志文件信息的时候编译就完成了。
下一步中,你将在IDE环境中运行你的安装程序。

运行安装程序
完成了项目助手中的步骤后,你已经创建了一个安装Tutorial可执行文件的完整功能的安装程序。

要运行安装程序:
从工具栏上单击Run,或者按Ctrl+F5

安装程序显示你在通过ProjectAssistantInstallationInterview页设置的对话框。你通过ProjectAssistant输入的那些值在对应的对话框中显示给终端用户。例如,在运行时,你通过ProjectAssistantINSTALLDIR指定的默认值出现在Choose Destination Location(选择目标位置)对话框中。如果最终用户通过浏览确定了一个新的默认目标目录,INSTALLDIR将保存新的值
安装完成之后,你可以浏览安装程序安装创建目录找到安装的文件。如果安装程序顺利,你将看到tutorial已经安装。

维护模式
当一个用户在他们的系统上第二次运行一个产品的安装程序,这个安装程序运行在maintenancemode
(维护模式)。维护模式允许用户修改第一次安装时的功能部件,修复已经安装的功能部件或者删除整个程序。

卸载程序
要卸载Tutorial程序:
单击Uninstall

现在你已经创建了一个基本的安装项目,单击InstallationDesigner标签,在教程的下一步中细化你的安装程序。

使用InstallShield 设计界面工作
创建好一个项目后,你可以在InstallShield的安装开发环境(或IDE)中设置项目的属性。IDE是在功能范畴上帮助你添加或编辑项目中的信息。教程中这个与以后的几个步骤将探索几个不同的IDE视图。

提示:根据你创建的不同项目类型,IDE的显示也是不同。

在你完成了这个步骤后,你将了解到如何:
  • 为你程序功能部件设置属性。
  • 创建构建并添加文件。

设置功能部件的属性

首先你将要设置你在Project Assistant中创建的功能部件的附加特性,象这个功能部件的显示名称和描述。要编辑功能部件的特性,转到IDEFeatures 视图。


在本例中,按照下列操作要设置功能部件的属性
1.打开Features视图。Features视图位于Organization部分的视图列表中
2.Features视图中,选择Tutorial_Files功能部件,在右侧显示他的属性表。
3.Description区域中输入下列内容:Thisfeature contains the Tutorial application files
4.选择Help_Files功能部件显示它的属性表
5.Description区域中输入下列内容:feature containsthe Tutorial help files

当你输入显示名称和描述,IDE就创建了一个字符串表项显示为{ID_STRINGn}来表示每一个值。

在运行时,如果最终用户选择了Custom setup type,安装程序就会显示一个对话框提示用户选择要安装的功能部件。你为功能部件指定的名称和描述就显示在这个对话框中

创建构建和文件连接

你可以在Files and Folders视图中添加文件连接。在这步中,你将要为Help_Files功能部件添加文件。当你在Files and Folders 视图中添加文件时,IDE环境将按照最优安装原则创建构件。

要为Help Files 功能部件添加一个源文件为Tutorial.html新构件:
1、转到Files andFolders视图(在视图列表中的Application Data节点下面)

2、Destination computer's folders位置,右键单击Destination Computer 图标,确定已经选择了Show Components


3、在功能部件列表视图顶部选择Help Files
4、展开Destinationcomputer's folders 面版中的目录树找到[INSTALLDIR]目录。
5、右键单击[INSTALLDIR]目录选择New Component。构件名称为Help_Component
6、Sourcecomputer's folders面版中,浏览包含TutorialHelp.html文件的Tutorial文件源目录
7、Source computer's files面版中拖动TutorialHelp.html图标到Destinationcomputer's folders Help_Component构件中。InstallShieldHelp_Files功能部件中的Help_Component添加文件。
8、Destination computer's files面板中单击Help_Component图标来显示这个构件的文件。
9、因为每一个构件应该都有一个key file,右键单击TutorialHelp.html文件选择Set Key File


这些文件链接类型,构件链接的文件列表不会改变,这种类型叫做static filelinking(静态文件链接)。要链接到一个包含子目录而且目录中的内容可能在编译时放生变化,请查看Dynamic FileLinking(动态文件链接)。


技巧:你可以使用InstallShield提供的依存关系扫描器来确定你的应用程序所需要的但却没有包含在项目文件中的文件。例如,Tutorial App 使用MFC,如果目标系统上没有安装MFC运行时,那么你必须在你的项目的Redistributables视图中添加MFC运行时对象。


教程的下一步将说明如何为你的安装项目编译一个发布映像。


编译发布程序


在测试一个安装程序之前,必须编译一个发布程序。一个发布映像包含将要通过CD-ROM或者软盘或者网络位置发布的所有文件。


编译一个新的发布文件最简单的方法是使用ReleaseWizard(发布向导)。这个ReleaseWizard 可以让你配置版本的特性。象使用的的介质类型,在介质上如何压缩文件。


要开始使用发布向导

1.单击工具栏中的ReleaseWizard按钮或从Build菜单中运行ReleaseWizard

2.Welcome面板中,单击NEXT来开始定义你的发布设置。



命名产品机构和版本

产品结构面板
在产品结构面板,你可以指定当前产品结构的名称。这个以产品名称命名的目录是你编译版本将要放置的地方。

在本例中:
1.建立一个名为Tutorial新的产品结构
2.点击NEXT指定发布名称

配置发布面板

Specify aRelease面板,指定一个发布名称。这个发布的名称用来命名存放发布文件的目录。
在本例中:
1.建立一个产品发布名为CDROM
2.单击NEXT

指定过滤设置和语言

过滤设置面板

Filtering Settings面板,你可以指定在当前版本之外的功能部件或者构件。
在本例中:
使用默认设置,单击NEXT继续

设置语言
设置安装语言面板,你可以指定在安装程序运行时,用户可以从显示的对话框中显示的列表中选择用户界面显示的语言。

在本例中:
使用默认的设置,单击NEXT继续。

选择介质类型与磁盘生成选项
介质类型面板
在介质类型面板,你可以指定你想编译发布的介质类型。这个介质类型表明了发布向导创建的映像文件夹的大小。当你选择使用CDROM类型是,发布向导把你的磁盘映像放进多个目录中,每个目录都小于650MB

本例中,从介质类型中选择CDROM

磁盘生成选项面板
Disk SpanningOptions面板可以让你指定当需要生成多个文件是,如何安排你的程序文件。自定义生成类型可以让你指定那些特殊功能部件中的文件放在哪个磁盘映像中。

在本例中:
对于如何让ReleaseWizard确定如何安排每一个磁盘映像中功能部件文件,选择Automatic

配置压缩设置和安装执行选项
发布设置面板
在发布设置面板,你可以指定在安装项目中压缩所有,不压缩还是压缩部分文件。

在本例中:
选择压缩所有文件。

安装执行面板

安装执行面板可以让你指定是否创建一个Setup.exe执行安装,是否在安装程序中包含Windows Installer installers的安装。如果目标系统上的没有安装服务程序或者安装服务程序的版本太老,那么Windows Installer
installers是必须安装的。

你还可以指定你想安装那个版本的Windows Installer服务。

在本例中,保留默认的设置。

在这个步骤中,保留所有的默认设置。

安装Windows安装程序的引擎文件

Windows安装程序定位面板

Windows安装程序定位面板中,指定Windows Installer installers的位置,如果你在前面的安装执行面板中指定包含了安装程序。你可以指定从WEB站点下载安装程序,压缩成Setup.exe,或者不压缩放在第一个磁盘映像中。



在本例中,选择Select Copy from source media


添加数字签名和密码保护
数字签名面板

数字签名面板允许你为应用程序添加数字签名。数字签名确保你的应用程序发布后的代码,不会被最终用户修改破坏。
在本例中,保留默认的设置(无数字签名)

密码与版权面板
密码与版权面板允许你为安装程序激活密码保护,为你的应用程序版权指明特别信息。

在本例中:
保留默认设置(没有密码保护与版权信息)

包含.NET Framework(框架)支持与选择高级设置
.NET Framework面板
NET Framework面板中,指定在发布中是否包含NET Framework的支持。

在本例中:保留默认设置(不包含NET Framework)

高级设置面板
高级设置面板可以让你指定与当前发布有关的附加设置,比如使用的压缩级别,是否为SMS发布创建一个PDF文件。

在本例中,进行下列设置:
  • 使用长文件名
  • 优化大小
  • 生成Autorun.inf-这个生成的文件为了CD-ROM的自动运行

对于其他设置的信息,在高级设置的面板上单击HELP按钮。

检查你的设置

总结
总结面板显示了发布向导对当前版本的所有设置。

如果设置正确:
1.选择Build the Release 复选框
2.单击Finish 按钮编译发布

编译过程中的状态信息会显示在输出窗口中。当编译结束,准备复制到CD上的文件放置在下面的目录中:
<ProjectFolder>/Tutorial/cdrom/DiskImages/DISK1

你可以在IDE使用Distribute视图,把编译的磁盘映像复制到其他的目录中。

重新编译项目

当你在教程后面的步骤中修改了项目后,你需要使用工具栏上的Build按钮,或者从菜单中选择Build命令,或者直接按F7重新编译发布程序。

教程后面的步骤中将解释如何为安装程序创建快捷方式和注册表数据。

安装程序故障诊断
运行安装程序后,如果文件没有安装上,检查项目中下列部分:
  • IDE环境中的列表中的第一个分类,Organize YourSetup选择GeneralInformation(常规信息)图标,然后选择Product Properties(产品属性)中,检查INSTALLDIR设置了固定的值。
    在本例中,建议值是“[ProgramFilesFolder]TutorialCo/TutorialApp
  • 检查你的功能部件已经有了相应的构件和文件
  • 在你更改了安装程序好,必须通过点击Build或者按F7来重新编译项目