最新InstallShield使用详解.doc

上传人:飞猪 文档编号:93745 上传时间:2025-07-10 格式:DOC 页数:36 大小:5.23MB
下载 相关 举报
最新InstallShield使用详解.doc_第1页
第1页 / 共36页
最新InstallShield使用详解.doc_第2页
第2页 / 共36页
最新InstallShield使用详解.doc_第3页
第3页 / 共36页
最新InstallShield使用详解.doc_第4页
第4页 / 共36页
最新InstallShield使用详解.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、精品资料InstallShield使用详解.目录前 言InstallShield是基于Windows平台的为软件发行方提供领先的基于windows的安装程序解决方案,能够制作强大可靠的Windows Installer(MSI)、InstallScript以及跨平台的安装程序,是安装工具领域事实上的标准,已经成为安全安装软件的标准解决方案,。在下面的内容当中,将以10HMITOOL项目实例讲解InstallShield的使用方法,使用的版本为InstallShield2008。第一章 集成开发环境InstallShield除了本身的开发环境外,还为vs2005提供了辅助功能,开发人员可以直接在

2、vs2005环境中创建InstallShield工程,具体操作如下:1.选择开始菜单-所有程序-Macrovision-InstallShield 2008 for Visual Studio 2005图1-1 运行InstallShield 2008 for Visual Studio 2005首次运行会出现如下的向导界面:在这里介绍了所有工程类型,用户可以根据自己的需要选择工程类型。图1-2 首次进入第二章 InstallShield基本操作2.1. 创建工程开始创建工程,打开File-New-Project,或Ctrl+Shift+Na. Project type 选择InstallSh

3、ield 2008 Projectsb. 根据我们项目的需要,Templates 选择InstallScript MSI Projectc. 输入工程名称和本地路径图2-1创建工程点击 “OK”后,10HMITOOL安装包工程就建立了。工程建立完毕后,首先进入的是project assistant(工程助手),我们可以通过工程助手方便对工程进行设计。如图所示。图2-2 进入设计界面右侧显示的是工程的项目信息,一些细节上的问题在这里解决,如:脚本的编写,事件的控制等。首先把我们想要安装的工程文件加入到这个工程当中,右键Sulution 10HMITOOL,选择Add-Existing Proje

4、ct”,如图2-3所示:图2-3 添加.NET工程选择我们要添加的工程文件”10HMITOOL_Archi”图2-4 添加工程10HMITOOL_Archi同样我们把其他的工程文件也加入进来,如图2-5所示:图2-5 添加的所有工程2.2. 通过 project assistant(工程助手)来设计工程。图2-6Application Information(基本信息): 在这里输入一些基本的信息,如下图。图2-7 基本信息1如果想设置更详细的信息,可以点击左侧的General Information图2-8基本信息2Installation Requirements(安装需求):在这里可以设

5、置系统环境要求,目标电脑只有满足这些要求,才可以运行我们所做的安装程序。图2-9 安装要求我们也可以设置自定义的环境要求,点击左侧的Create a custom software condition,选择我们要求条件的类别,可以根据实际的情况来选择,在这里我们选择Registry entry.图2-10 自定义安装要求然后在下面的窗口中输入查找信息。图2-11 设置安装要求我们通过这个可以查询目标电脑是否安装了Excel2003(虽然通过这种方式可以查找一些注册表的信息,但是不灵活,我们可以通过脚本语句实现更好的查询,在后面的内容当中,将给予详细介绍)。Installation Archit

6、ecture(安装设计):在这里我们可以对安装进行设计,制定安装项,开发工具会自动给我们生成一个默认的安装项,我们还可以继续添加,具体操作如下:右键点击Installation Architecture 点击New,或者点击下面的New,或者键盘的Insert图2-12添加安装根据需求我们设定了四个安装项,分别为Rls ,Rot,Tool,ExcelTemplate图2-13 添加四个安装项Application Files(应用程序文件):创建完安装项之后,我们要为每个安装项添加对应的文件,如下图所示,系统默认会自动设定文件结构,neusoftMy Product Name,我们可以将其改名

7、改成10HMITOOL.图2-14 修改文件夹名称图2-15 选择安装项然后为每个安装项添加文件,点击下拉菜单,选择一个安装项,比如:Rls图2-16 添加新文件夹1为其创建文件夹Rls,如图所示。图2-17添加新文件夹2创建文件夹后,这时就可以为其添加文件了。点击Add Project Outputs ,添加工程的输出文件,将和安装项有关的工程输出文件添加到文件当中,当我们编译整个工程的时候,对应生成的文件会子自动加入到这个文件当中,然后安装的时候,就可以把文件安装到目标电脑上。图2-18 添加工程输出文件1图2-19添加工程输出文件2除了添加工程的输出文件外,还要添加一些已经存在的文件,

8、点击 Add Files添加文件。图2-20 添加文件1图2-21添加文件2同样的方法,为其他安装项添加文件,具体的文件如图所示:图2-22 添加所有的文件Applcation Shortcuts(应用程序快捷方式)在添加的时候,包含了两个.exe文件,系统会自动为其创建快捷方式,我们也可以删除和添加快捷方式,或者自定义快捷方式的图标,操作很简单,根据界面信息,很容易对其进行设置。图2-23 快捷方式Application Registry(应用程序注册)对于安装程序来说,注册表操作是非常重要,大部份的软件都会涉及到注册表,InstallShield对于注册表的操作很方便,我们可以通过Appl

9、cation Registry来设置。在Windows系统里,注册表有五大项:HKEY_CLASSES_ROOTHKEY_CURRENT_UESRHKEY_LOCAL_MACHINEHKEY_USERSHKEY_USERS_SELECTABLE通过Applcation Registry我们可以给方便的为安装的应用程序添加必要的注册表信息。选择HKEY_CURRENT_UESR,右键点击 New,创建子项,如图所示,图2-24 设置注册表Installation Localization(安装本地化)在这里选择安装的提示语言,根据需要随意选择,我们选择Japanese图2-25安装本地化2.3.

10、 安装包发布发布安装包设置:制作安装包时,向导的最后一步就是编译最终的安装包,但是向导中提供的设置比较少,所以我们有必要来重新手动编译一次,来了解一些详细的设置。点击MediaRelease;图2-26发布安装包在菜单中选择“Release wizard”,使用创建向导,在向导的界面上点击下一步,在New Release Name中,输入这个编译项目的名字,可以任意起。然后点击下一步。图2-27 项目名称选择安装语言选项在Installation Localization中设置的语言,在这里都会体现出来,用户可以再次对语言选项进行编辑,设置默认语言选项,如果有多种语言,还可以选择安装是否显示安

11、装语言的对话框,这样可以在安装的时候可以选择用户需要的语言。图2-28语言选项设置完毕后,点击下一步,设置安装的文件格式选择安装文件在安装包中存在方式:压缩、非压缩。或者指定部分压缩。选择第一项:压缩,将所有文件压缩成一个文件。如果现在第二项,则你的安装文件会直接显示在安装包中。图2-29文件格式以下各步骤全部默认,直至完成,InstallShield开始编译。生成新的安装包编译项目,并编译成安装包。InstallShield生成的安装包存放在它自己默认的文件夹中,找起来不方便。我们可以在这里修改一下,每次编译后让IS将编译好的安装包拷贝到指定的一个目录。 图2-30 文件路径第三章 Inta

12、llShield脚本语言3.1 脚本语言介绍关于InstallShield的脚本,我们如果只是普通的安装的话,并不是很复杂。InstallShield是根据内部的脚本一次执行各个环节进行安装。那么IS的脚本顺序到底是怎么执行的呢?我们选择Behavior and Logic-Install Script,在中间窗口,我们看到了脚本文件Setup.rul,我们点击这个文件,发现在右侧的窗口中几乎没有任何脚本。这不是说明目前没有脚本,而是InstallShield通常情况下并不显示脚本出来,如何显示脚本的问题我们先暂缓,先来了解一下InstallShield是按照什么顺序来执行脚本的。图3-1 I

13、nstallShield脚本InstallShield有很多的固定函数,这些函数在特定的安装阶段被执行。我们在脚本窗口的上部,可以在第一个下拉列表中看到这些InstallShield内部定义的阶段。InstallShield就是按照这样一个阶段顺序执行的。而每一个阶段包括了许多函数,这些函数完成特定的功能。我们选择一个阶段,在后面的下拉列表中就可以看到这个阶段下的所有函数。选择其中一个函数,在脚本的窗口中,就会显示这个函数的具体内容。比如,这里我们阶段选择“Before Move Data”,函数选择“OnFirstUIBefore”,因为,对于一般的修改,这个函数是最主要的。在这个函数的脚本

14、中,我们可以看到,函数开始处,是详细的对这个函数在什么时候被调用执行的解释。这时候,如果你 选择最初的阶段“initialization”的第一个函数“OnSetTARGETDIR”,那么你会发现在OnFirstUIBefore的函数体下面,出现了OnSetTARGETDIR的函数体,这并不是说先执行OnFirstUIBefore,后执行OnSetTARGETDIR,函数的执行顺序和显示的顺序无关,对于初次接触InstallShield的人来说,这点千万分清楚。函数的执行顺序是已经固定的。3.2 实例一:注册表的处理上面的安装例子中,我们是利用InstallShield自带的功能去编辑注册表,

15、但不是很灵活这里我们主要是讲如何在脚本中去处理它。在10HMITOOL应用程序中,要用到Excel模板,需要把Excel模板的一些信息写入注册表,如:Excel模板的路径。那么写入注册表的时机是怎么样的呢?因为Excel模板放到了ExcelTemplate安装项中,所以写入注册表的时机就是在ExcelTemplate安装项安装完毕之后,我们选择New New_Feature2,时机为Installed(注意New New_Feature2就是指ExcelTemplate安装项),图3-2 脚本编写内库函数介绍:InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建

16、程序组,操作文件夹,处理目录,监督安装状态,创建对话框,操作文件及其它更多工作。在这里只介绍一下,我们用到的三个函数,其他函数可以参考附件1.RegDBSetDefaultRoot (nRootKey); 说明:RegDBSetDefaultRoot函数设置一个被其它注册表函数使用的开关键。大多数InstallShield注册表函数工作在以HKEY_CLASSES_ROOT为注册表树的缺省根。使用该函数,你可以指定另一个项,如HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 或 HKEY_USERS为开关键。 2.RegDBCreateKeyEx (szKey, s

17、zClass); 说明:RegDBCreateKeyEx函数创建注册表中的一项3.RegDBGetKeyValueEx (szKey, szName, nvType, svValue, nvSize); 说明:RegDBGetKeyValueEx函数检索注册表中一个指定项下一个特定数值名的值。系统变量解释:TARGETDIR :程序安装目的路径SUPPORTDIR:在安装初始阶段的时候,InstallShield定位一个目标系统上的文件夹,InstallShield可以将临时文件和在你的Setup包中的压缩文件拷贝到这个文件夹。InstallShield 把这个文件夹完整的路径赋给SUPPOR

18、TDIR。这个系统变量的值不能在对象脚本之间共享,也不能在对象脚本和主安装脚本之间共享。在某一个脚本中给这个系统变量赋值不影响它在其它脚本的值Export prototype New_Feature2_Installed();function New_Feature2_Installed() STRING szName, szValue; NUMBER nSize; STRING szKey, szClass; begin RegDBSetDefaultRoot (HKEY_CURRENT_USER); / 设置HKEY_CURRENT_USER开关键 szKey=SoftwareAW.HMI

19、10RootTool; szClass=; szName=SoftwareAW.HMI10RootTool; if (RegDBCreateKeyEx(szKey, szClass) = 0) then szValue=TARGETDIRExcelTemplate; if(RegDBSetKeyValueEx (szKey,TemplatePath,REGDB_STRING,szValue, nSize)0) then; MessageBox (Second call to RegDBKeyExist failed., SEVERE); endif; szValue=TARGETDIRRot;

20、 if(RegDBSetKeyValueEx (szKey,Path,REGDB_STRING,szValue, nSize)0) then; MessageBox (Second call to RegDBKeyExist failed., SEVERE); endif; endif; end;3.3 实例二:安装前执行,运行其他的软件安装。图3-3 添加其他安装文件安装软件前先安装Office 补丁,.NET 补丁,在Support Files/Billboards添加office2003-KB907417-FullFile-ENU.exe ,extensibilityMSM.msi,lo

21、ckbackRegKey.msi三个补丁,通过脚本去控制安装过程。在安装初始化之后就可以安装补丁了。脚本代码如下:#include ifx.h#include featureevents.rulfunction OnAppSearch() STRING szKey,szName,svValue; NUMBER nvSize,nvType; STRING DIR,FIR,svResult;begin RegDBSetDefaultRoot (HKEY_CLASSES_ROOT); DIR=SUPPORTDIR;/检查目标电脑时候安装了Excel,如果没有安装Excel退出安装 szKey=CLS

22、ID00024500-0000-0000-C000-000000000046LocalServer32; if(RegDBGetKeyValueEx (szKey, , nvType, svValue, nvSize)0) then MessageBox(Your computer didnt installed Excel,Please install Excel,SEVERE); abort; endif; szKey=Excel.ApplicationCurVer; FIR=office2003-KB907417-FullFile-ENU.exe; RegDBGetKeyValueEx(

23、szKey,nvType,svValue,nvSize); if(svValue=Excel.Application.11) then LaunchAppAndWait (DIRFIR, WAIT); /安装Office补丁 endif; FIR=extensibilityMSM.msi; LaunchAppAndWait (WINSYSDIRmsiexec.exe, /i+DIRFIR, WAIT); /安装.NET补丁 FIR=lockbackRegKey.msi; LaunchAppAndWait (WINSYSDIRmsiexec.exe, /i+DIRFIR, WAIT); /安装.

24、NET补丁end;关于脚本详细介绍,因为比较多,在这里就不多说了,大家可以参考InstallShield自带的帮助文件,或者附件(InstallShield内库函数,进行脚本的编写,网上资料也很多。第四章 其他的安装包制作工具安装包的制作工具非常的多,在这里我们只列出三种比较常用的制作工具,这些工具已经被很多的大型软件公司采用,下面将对它们进行简单的介绍。4.1InstallAware产品简介InstallAware是Windows安装程序制作中新兴的标准,能够用script-driven 的方式为你的应用程序创建安装文件,目前它已经被大量用于一些软件公司,InstallAware提供了自动控

25、制的界面来程序化的生成、构建安装工程。您能从你的程序或者web页面上发布你的安装脚本,创造属于自己的安装开发环境,它所提供的工具包为您的软件创建常用的安装包,还提供了功能强大的程序打包安装和升级功能网址:4.2 wise 产品简介 Wise for Windows Installer使开发者能够快速简单地创建使用最新Microsoft技术的可靠.MSI安装程序。利用集成的开发选项,针对数据驱动Web应用安装和安装管理特征的技术先进功能,确保您的安装不仅只在您的电脑上工作,而且它还将配合您的生产环境。 完全的Visual Studio.NET集成 l 在Microsoft Visual Stud

26、io .NET开发环境下直接开发安装程序;l 基于您的项目自动地更新安装程序; l 包括所有的项目文件如HTML、ASP.NET和ASP; l 支持Visual Studio .NET 2005,包括端到端的安装; l 利用固有的Visual Studio .NET功能如source code control;l 完全集成的帮助文档;网址:4.3 Advanced Installer产品简介 Advanced Installer 是一款功能强大、可生成符合 MS Windows 认证的 Windows Installer 的 MSI 安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界

27、面,创建 MSI 文件包非常方便,用户只需添加文件,修改名称,添加按钮就可以了,无需任何脚本方面的知识,并且生成的安装文件保证符合 Windows 最佳操作建议。网址:4.4 工具比较 InstallShield和上面提到的三种工具,各有自身的特点,开发人员可根据自己的喜好来选择制作工具,下面将从三方面描述他们的异同之处:基本的操作:这个四个工具有很多相同的地方,从界面就可以看出,它们在安装信息,安装项的设置,注册表的操作,文件的添加,快捷方式等基本操作都有相同的,而其这些操作起来也很方面,有兴趣的朋友可以在官方网上上下载评估版尝试一下。Visual Studio.NET集成 四种开发工具当中

28、InstallShield和Wise在Microsoft Visual Studio .NET开发环境下直接开发安装程序,都可添加工程的输出文件,InstallShield具体的操作在上面的例子当中,已经讲解,Wise和InstallShield和相似,但界面没有InstallShield友好一些,添加文件的方式和InstallShield不些不同,不是很方便。其他两个制作工具不完全支持Visual Studio.NET集成开发。脚本控制在脚本控制这方面InstallShield可以说功能是最强大的,本身的内库函数有着强大的功能,可以很方便设计自定义安装包,包括界面的设计,注册表的操作,文件操作,快捷方式,反编译程序等,而且它的脚本语言非常的简单,对于初学者来说,脚本语言不是很难,难点就是如何选择时机,要求逻辑性较强,这个需要点经验。其他的制作工具没有InstallShiled灵活。 由于时间的原因,并没有将这四个制作工具进行更深层的研究,具体的介绍可以登陆各自的官方网站,下载软件和帮助文档。上面讲解的内容难免有不对的地方,如发现错误之处,请指正!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > windows相关

宁ICP备18001539号-1