InstallShield使用详解.docx
- 文档编号:4127372
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:28
- 大小:1.77MB
InstallShield使用详解.docx
《InstallShield使用详解.docx》由会员分享,可在线阅读,更多相关《InstallShield使用详解.docx(28页珍藏版)》请在冰豆网上搜索。
InstallShield使用详解
目录
前言2
第一章集成开发环境3
第二章InstallShield基本操作4
2.1.创建工程4
2.2.通过projectassistant(工程助手)来设计工程。
8
2.3.安装包发布19
第三章IntallShield脚本语言23
3.1脚本语言介绍23
3.2实例一:
注册表的处理25
3.3实例二:
安装前执行,运行其他的软件安装。
28
第四章其他的安装包制作工具30
4.1installaware30
4.2wise31
4.3advancedinstaller33
4.4工具比较33
前言
InstallShield是基于Windows平台的为软件发行方提供领先的基于windows的安装程序解决方案,能够制作强大可靠的WindowsInstaller(MSI)、InstallScript以及跨平台的安装程序,是安装工具领域事实上的标准,已经成为安全安装软件的标准解决方案,。
在下面的内容当中,将以10HMITOOL项目实例讲解InstallShield的使用方法,使用的版本为InstallShield2008。
第一章集成开发环境
InstallShield除了本身的开发环境外,还为vs2005提供了辅助功能,开发人员可以直接在vs2005环境中创建InstallShield工程,具体操作如下:
1.选择开始菜单->所有程序->Macrovision->InstallShield2008forVisualStudio2005
图1-1运行InstallShield2008forVisualStudio2005
首次运行会出现如下的向导界面:
在这里介绍了所有工程类型,用户可以根据自己的需要选择工程类型。
图1-2首次进入
第二章InstallShield基本操作
2.1.创建工程
开始创建工程,打开[File]->New->Project,或Ctrl+Shift+N
a.Projecttype选择InstallShield2008Projects
b.根据我们项目的需要,Templates选择InstallScriptMSIProject
c.输入工程名称和本地路径
图2-1创建工程
点击“OK”后,10HMITOOL安装包工程就建立了。
工程建立完毕后,首先进入的是projectassistant(工程助手),我们可以通过工程助手方便对工程进行设计。
如图所示。
图2-2进入设计界面
右侧显示的是工程的项目信息,一些细节上的问题在这里解决,如:
脚本的编写,事件的控制等。
首先把我们想要安装的工程文件加入到这个工程当中,右键Sulution‘10HMITOOL’,选择Add->ExistingProject”,如图2-3所示:
图2-3添加.NET工程
选择我们要添加的工程文件”10HMITOOL_Archi”
图2-4添加工程10HMITOOL_Archi
同样我们把其他的工程文件也加入进来,如图2-5所示:
图2-5添加的所有工程
2.2.通过projectassistant(工程助手)来设计工程。
图2-6
ApplicationInformation(基本信息):
在这里输入一些基本的信息,如下图。
图2-7基本信息1
如果想设置更详细的信息,可以点击左侧的GeneralInformation
图2-8基本信息2
InstallationRequirements(安装需求):
在这里可以设置系统环境要求,目标电脑只有满足这些要求,才可以运行我们所做的安装程序。
图2-9安装要求
我们也可以设置自定义的环境要求,点击左侧的Createacustomsoftwarecondition,选择我们要求条件的类别,可以根据实际的情况来选择,在这里我们选择Registryentry.
图2-10自定义安装要求
然后在下面的窗口中输入查找信息。
图2-11设置安装要求
我们通过这个可以查询目标电脑是否安装了Excel2003(虽然通过这种方式可以查找一些注册表的信息,但是不灵活,我们可以通过脚本语句实现更好的查询,在后面的内容当中,将给予详细介绍)。
InstallationArchitecture(安装设计):
在这里我们可以对安装进行设计,制定安装项,开发工具会自动给我们生成一个默认的安装项,我们还可以继续添加,具体操作如下:
右键点击InstallationArchitecture点击New,或者点击下面的New,或者键盘的Insert
图2-12添加安装
根据需求我们设定了四个安装项,分别为Rls,Rot,Tool,ExcelTemplate
图2-13添加四个安装项
ApplicationFiles(应用程序文件):
创建完安装项之后,我们要为每个安装项添加对应的文件,如下图所示,系统默认会自动设定文件结构,neusoft\MyProductName,我们可以将其改名,改成10HMITOOL.
图2-14修改文件夹名称
图2-15选择安装项
然后为每个安装项添加文件,点击下拉菜单,选择一个安装项,比如:
Rls
图2-16添加新文件夹1
为其创建文件夹—Rls,如图所示。
图2-17添加新文件夹2
创建文件夹后,这时就可以为其添加文件了。
点击AddProjectOutputs,添加工程的输出文件,将和安装项有关的工程输出文件添加到文件当中,当我们编译整个工程的时候,对应生成的文件会子自动加入到这个文件当中,然后安装的时候,就可以把文件安装到目标电脑上。
图2-18添加工程输出文件1
图2-19添加工程输出文件2
除了添加工程的输出文件外,还要添加一些已经存在的文件,点击AddFiles添加文件。
图2-20添加文件1
图2-21添加文件2
同样的方法,为其他安装项添加文件,具体的文件如图所示:
图2-22添加所有的文件
ApplcationShortcuts(应用程序快捷方式)
在添加的时候,包含了两个.exe文件,系统会自动为其创建快捷方式,我们也可以删除和添加快捷方式,或者自定义快捷方式的图标,操作很简单,根据界面信息,很容易对其进行设置。
图2-23快捷方式
ApplicationRegistry(应用程序注册)
对于安装程序来说,注册表操作是非常重要,大部份的软件都会涉及到注册表,InstallShield对于注册表的操作很方便,我们可以通过ApplcationRegistry来设置。
在Windows系统里,注册表有五大项:
HKEY_CLASSES_ROOT
HKEY_CURRENT_UESR
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_USERS_SELECTABLE
通过ApplcationRegistry我们可以给方便的为安装的应用程序添加必要的注册表信息。
选择HKEY_CURRENT_UESR,右键点击New,创建子项,如图所示,
图2-24设置注册表
InstallationLocalization(安装本地化)
在这里选择安装的提示语言,根据需要随意选择,我们选择Japanese
图2-25安装本地化
2.3.安装包发布
发布安装包设置:
制作安装包时,向导的最后一步就是编译最终的安装包,但是向导中提供的设置比较少,所以我们有必要来重新手动编译一次,来了解一些详细的设置。
点击MediaRelease;
图2-26发布安装包
在菜单中选择“Releasewizard”,使用创建向导,在向导的界面上点击下一步,在NewReleaseName中,输入这个编译项目的名字,可以任意起。
然后点击下一步。
图2-27项目名称
选择安装语言选项
在InstallationLocalization中设置的语言,在这里都会体现出来,用户可以再次对语言选项进行编辑,设置默认语言选项,如果有多种语言,还可以选择安装是否显示安装语言的对话框,这样可以在安装的时候可以选择用户需要的语言。
图2-28语言选项
设置完毕后,点击下一步,设置安装的文件格式
选择安装文件在安装包中存在方式:
压缩、非压缩。
或者指定部分压缩。
选择第一项:
压缩,将所有文件压缩成一个文件。
如果现在第二项,则你的安装文件会直接显示在安装包中。
图2-29文件格式
以下各步骤全部默认,直至完成,InstallShield开始编译。
生成新的安装包编译项目,并编译成安装包。
InstallShield生成的安装包存放在它自己默认的文件夹中,找起来不方便。
我们可以在这里修改一下,每次编译后让IS将编译好的安装包拷贝到指定的一个目录。
图2-30文件路径
第三章IntallShield脚本语言
3.1脚本语言介绍
关于InstallShield的脚本,我们如果只是普通的安装的话,并不是很复杂。
InstallShield是根据内部的脚本一次执行各个环节进行安装。
那么IS的脚本顺序到底是怎么执行的呢?
我们选择BehaviorandLogic-->InstallScript,在中间窗口,我们看到了脚本文件Setup.rul,我们点击这个文件,发现在右侧的窗口中几乎没有任何脚本。
这不是说明目前没有脚本,而是InstallShield通常情况下并不显示脚本出来,如何显示脚本的问题我们先暂缓,先来了解一下InstallShield是按照什么顺序来执行脚本的。
图3-1InstallShield脚本
InstallShield有很多的固定函数,这些函数在特定的安装阶段被执行。
我们在脚本窗口的上部,可以在第一个下拉列表中看到这些InstallShield内部定义的阶段。
InstallShield就是按照这样一个阶段顺序执行的。
而每一个阶段包括了许多函数,这些函数完成特定的功能。
我们选择一个阶段,在后面的下拉列表中就可以看到这个阶段下的所有函数。
选择其中一个函数,在脚本的窗口中,就会显示这个函数的具体内容。
比如,这里我们阶段选择“BeforeMoveData”,函数选择“OnFirstUIBefore”,因为,对于一般的修改,这个函数是最主要的。
在这个函数的脚本中,我们可以看到,函数开始处,是详细的对这个函数在什么时候被调用执行的解释。
这时候,如果你选择最初的阶段“initialization”的第一个函数“OnSetTARGETDIR”,那么你会发现在OnFirstUIBefore的函数体下面,出现了OnSetTARGETDIR的函数体,这并不是说先执行OnFirstUIBefore,后执行OnSetTARGETDIR,函数的执行顺序和显示的顺序无关,对于初次接触InstallShield的人来说,这点千万分清楚。
函数的执行顺序是已经固定的。
3.2实例一:
注册表的处理
上面的安装例子中,我们是利用InstallShield自带的功能去编辑注册表,但不是很灵活这里我们主要是讲如何在脚本中去处理它。
在10HMITOOL应用程序中,要用到Excel模板,需要把Excel模板的一些信息写入注册表,如:
Excel模板的路径。
那么写入注册表的时机是怎么样的呢?
因为Excel模板放到了ExcelTemplate安装项中,所以写入注册表的时机就是在ExcelTemplate安装项安装完毕之后,我们选择NewNew_Feature2,时机为Installed(注意NewNew_Feature2就是指ExcelTemplate安装项),
图3-2脚本编写
内库函数介绍:
InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,处理目录,监督安装状态,创建对话框,操作文件及其它更多工作。
在这里只介绍一下,我们用到的三个函数,其他函数可以参考附件<
1.RegDBSetDefaultRoot(nRootKey);
说明:
RegDBSetDefaultRoot函数设置一个被其它注册表函数使用的开关键。
大多数InstallShield注册表函数工作在以HKEY_CLASSES_ROOT为注册表树的缺省根。
使用该函数,你可以指定另一个项,如HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER或HKEY_USERS为开关键。
2.RegDBCreateKeyEx(szKey,szClass);
说明:
RegDBCreateKeyEx函数创建注册表中的一项
3.RegDBGetKeyValueEx(szKey,szName,nvType,svValue,nvSize);
说明:
RegDBGetKeyValueEx函数检索注册表中一个指定项下一个特定数值名的值。
系统变量解释:
TARGETDIR:
程序安装目的路径
SUPPORTDIR:
在安装初始阶段的时候,InstallShield定位一个目标系统上的文件夹,InstallShield可以将临时文件和在你的Setup包中的压缩文件拷贝到这个文件夹。
InstallShield把这个文件夹完整的路径赋给SUPPORTDIR。
这个系统变量的值不能在对象脚本之间共享,也不能在对象脚本和主安装脚本之间共享。
在某一个脚本中给这个系统变量赋值不影响它在其它脚本的值
ExportprototypeNew_Feature2_Installed();
functionNew_Feature2_Installed()
STRINGszName,szValue;
NUMBERnSize;
STRINGszKey,szClass;
begin
RegDBSetDefaultRoot(HKEY_CURRENT_USER);//设置HKEY_CURRENT_USER开关键
szKey="Software\\AW.HMI10\\RootTool";
szClass="";
szName="Software\\AW.HMI10\\RootTool";
if(RegDBCreateKeyEx(szKey,szClass)=0)then
szValue=TARGETDIR^"ExcelTemplate";
if(RegDBSetKeyValueEx(szKey,"TemplatePath",REGDB_STRING,szValue,nSize)<0)then;
MessageBox("SecondcalltoRegDBKeyExistfailed.",SEVERE);
endif;
szValue=TARGETDIR^"Rot";
if(RegDBSetKeyValueEx(szKey,"Path",REGDB_STRING,szValue,nSize)<0)then;
MessageBox("SecondcalltoRegDBKeyExistfailed.",SEVERE);
endif;
endif;
end;
3.3实例二:
安装前执行,运行其他的软件安装。
图3-3添加其他安装文件
安装软件前先安装Office补丁,.NET补丁,在SupportFiles/Billboards添加office2003-KB907417-FullFile-ENU.exe,extensibilityMSM.msi,lockbackRegKey.msi三个补丁,通过脚本去控制安装过程。
在安装初始化之后就可以安装补丁了。
脚本代码如下:
#include"ifx.h"
#include"featureevents.rul"
functionOnAppSearch()
STRINGszKey,szName,svValue;
NUMBERnvSize,nvType;
STRINGDIR,FIR,svResult;
begin
RegDBSetDefaultRoot(HKEY_CLASSES_ROOT);
DIR=SUPPORTDIR;
//检查目标电脑时候安装了Excel,如果没有安装Excel退出安装
szKey="CLSID\\{00024500-0000-0000-C000-000000000046}\\LocalServer32";
if(RegDBGetKeyValueEx(szKey,"",nvType,svValue,nvSize)<0)then
MessageBox("Yourcomputerdidn'tinstalledExcel,PleaseinstallExcel",SEVERE);
abort;
endif;
szKey="Excel.Application\\CurVer";
FIR="office2003-KB907417-FullFile-ENU.exe";
RegDBGetKeyValueEx(szKey,"",nvType,svValue,nvSize);
if(svValue="Excel.Application.11")then
LaunchAppAndWait(DIR^FIR,"",WAIT);//安装Office补丁
endif;
FIR="extensibilityMSM.msi";
LaunchAppAndWait(WINSYSDIR^"msiexec.exe","/i"+DIR^FIR,WAIT);//安装.NET补丁
FIR="lockbackRegKey.msi";
LaunchAppAndWait(WINSYSDIR^"msiexec.exe","/i"+DIR^FIR,WAIT);//安装.NET补丁
end;
关于脚本详细介绍,因为比较多,在这里就不多说了,大家可以参考InstallShield自带的帮助文件,或者附件(InstallShield内库函数,进行脚本的编写,网上资料也很多。
第四章其他的安装包制作工具
安装包的制作工具非常的多,在这里我们只列出三种比较常用的制作工具,这些工具已经被很多的大型软件公司采用,下面将对它们进行简单的介绍。
4.1InstallAware
产品简介
InstallAware是Windows安装程序制作中新兴的标准,能够用script-driven的方式为你的应用程序创建安装文件,目前它已经被大量用于一些软件公司,InstallAware提供了自动控制的界面来程序化的生成、构建安装工程。
您能从你的程序或者web页面上发布你的安装脚本,创造属于自己的安装开发环境,它所提供的工具包为您的软件创建常用的安装包,还提供了功能强大的程序打包安装和升级功能
网址:
4.2wise
产品简介
WiseforWindowsInstaller使开发者能够快速简单地创建使用最新Microsoft技术的可靠.MSI安装程序。
利用集成的开发选项,针对数据驱动Web应用安装和安装管理特征的技术先进功能,确保您的安装不仅只在您的电脑上工作,而且它还将配合您的生产环境。
完全的VisualStudio.NET集成
●在MicrosoftVisualStudio.NET开发环境下直接开发安装程序;
●基于您的项目自动地更新安装程序;
●包括所有的项目文件如HTML、ASP.NET和ASP;
●支持VisualStudio.NET2005,包括端到端的安装;
●利用固有的VisualStudio.NET功能如sourcecodecontrol;
●完全集成的帮助文档;
网址:
4.3AdvancedInstaller
产品简介
AdvancedInstaller是一款功能强大、可生成符合MSWindows认证的WindowsInstaller的MSI安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界面,创建MSI文件包非常方便,用户只需添加文件,修改名称,添加按钮就可以了,无需任何脚本方面的知识,并且生成的安装文件保证符合Windows最佳操作建议。
网址:
4.4工具比较
InstallShield和上面提到的三种工具,各有自身的特点,开发人员可根据自己的喜好来选择制作工具,下面将从三方面描述他们的异同之处:
基本的操作:
这个四个工具有很多相同的地方,从界面就可以看出,它们在安装信息,安装项的设置,注册表的操作,文件的添加,快捷方式等基本操作都有相同的,而其这些操作起来也很方面,有兴趣的朋友可以在官方网上上下载评估版尝试一下。
VisualStudio.NET集成
四种开发工具当中,InstallShield和Wise在MicrosoftVisualStudio.NET开发环境下直接开发安装程序,都可添加工程的输出文件,InstallShield具体的操作在上面的例子当中,已经讲解,Wise和InstallShield和相似,但界面没有InstallShield友好一些,添加文件的方式和InstallShield不些不同,不是很方便。
其他两个制作工具不完全支持VisualStudio.NET集成开发。
脚本控制
在脚本控制这方面InstallShield可以说功能是最强大的,本身的内库函数有着强大的功能,可以很方便设计自定义安装包,包括界面的设计,注册表的操作,文件操作,快捷方式,反编译程序等,而且它的脚本语言非常的简单,对于初学者来说,脚本语言不是很难,难点就是如何选择时机,要求逻辑性较强,这个需要点经验。
其他的制作工具没有InstallShiled灵活。
由于时间的原因,并没有将这四个制作工具进行更深层的研究,具体的介绍可以登陆各自的官方网站,下载软件和帮助文档。
上面讲解的内容难免有不对的地方,如发现错误之处,请指正!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- InstallShield 使用 详解