InstallShield学习笔记一:工程选择

摘要:
由于项目需求需要用到Installshield2014完成打包工作,在使用Installshield2014过程中,遇到一些问题,在这里记录下,方便以后查看。你需要升级一个已有的InstallScript工程。而在InstallScriptMSI,使用如下配置是不生效的。。当前InstallShield2014不支持中文,对功能学习了解只能查看英文用户手册。。

由于项目需求需要用到Installshield 2014完成打包工作,在使用Installshield 2014过程中,遇到一些问题,在这里记录下,方便以后查看。

1.Installshield安装包下载地址:

http://www.flexerasoftware.com/resources/free-trials/#installshield

需要输入Email信息,在邮件中会出现连接路径,点击链接下载即可。

2.安装工程选择

Installshield包含很多类型的工程,项目中用到的 InstallScript InstallScript MSI 。可以点击查看两者具体差别:

http://www.cnblogs.com/installshield/archive/2010/09/19/1831122.html

这里在重复下:

InstallScript工程基于InstallScript脚本控制。如果有以下需求,推荐使用InstallScript类型的工程:

  1. 对用户界面有更高的需求,需要自定义安装界面。
  2. 安装时你需要全屏的背景广告板。
  3. 你喜欢写程序控制安装过程,而不是填写一些表格数据。
  4. 你倾向在安装之前或之后执行自己的操作。
  5. 你需要升级一个已有的InstallScript工程。

InstallScript MSI是InstallScript工程类型和Basic MSI工程类型的混合,执行安装的过程中它既用到Windows Installer,也用到了InstallScript引擎。如果有以下需求,推荐使用InstallScript MSI类型的工程:

  1. 需要进行Windows Vista和Windows 7的Logo认证。
  2. 对用户界面有更高的需求。
  3. 你喜欢写程序控制安装过程,而不是填写一些表格数据。
  4. 你倾向在安装之前或之后执行自己的操作。
  5. 你需要升级一个已有的InstallScript MSI工程

这里说下使用 InstallScript MSI 和 InstallScript 这两个不同工程给感受:

在项目开发过程中,一开始使用的是 InstallScript MSI 工程打包,在将近完成安装包制作的时候,发现几个问题无法解决:

1.准备安装框无法隐藏。

(1)在执行安装程序时,会弹出这个“正在准备安装…”的对话框,在安装过程中这个对话框显示是很正常的,

但是在卸载掉时候,也出现这个对话框,而且一模一样。。。试想,用户在卸载提示正在安装,感觉总归不是很好。。

image

尝试修改:

方案一:

“正在准备安装…”这个对话框正常情况下,无法修改显示的内容,因为在资源文件“String Editor”中找不到对应的资源文件。

注意:在“String Editor”中的“IDS__IsInitDlg_PreparingWizard”这个资源文件是其他对话框,不是这个对话框的。、

方案二:

在Installshield安装目录下,找到 0x0804.ini 这个配置文件(这个是中文的配置文件,英文的配置文件是:0x0409.ini),修改里面的信息。

注意:

(1)这个方案修改的是内容,如果想要保留“正在准备安装…”这个对话框,修改的对话框内容最好是 安装卸载 让用户不费解的提示内容。

(2)请谨慎修改Installshild安装包的配置文件信息,一旦修改,其他工程也会同时修改,切记。

image

方案三:

如果显示有问题,那么可以让安装包不显示“正在准备安装…”对话框,在参数栏中使用:/hide_progress。

注意:InstallScript 只要配置这个参数就能够完整对初始化对话框的隐藏。

而在 InstallScript MSI,使用如下配置是不生效的。。

image

这样做是行不通的的。。。

官方文档描述:

For InstallScript MSI installations: If you include a splash screen, the installation automatically switches to the small
progress dialog, and the splash screen is shown only during the time that the progress dialog is displayed. Note that this is
true even if /hide_progress is specified. Therefore, it is recommended that you avoid using /hide_progress with a
splash screen in InstallScript MSI installations.

意思差不多是在 InstallScript MSI 工程里只能用MSI参数,而/hide_progress即使设置上也没有效果,但是可以在被第三方调用,或在命令行启动Setup.exe时使用。

2.安装过程中取消后,再次点击安装包需要卸载

在项目开发中,这个功能非常鸡肋。因为在项目中,需要在 OnFirstUIAfter() 后在做一些额外的操作,此时在OnFirstUIBefore()已经完成了安装,

在注册表上已经写入了数据。如果这个时候取消,然后再次点击安装的时候,会提示先卸载之前的安装,卸载完成后才能再次安装,这个对用户体验来说,

非常不合理。

3.安装过程中,界面呈现资源文件无法修改,而且无法控制安装卸载触发流程

在使用过程中,安装和卸载的有些页面在 “Dialogs”找不到,也不知道这些页面具体是在哪里触发的,无法在不修改 Installshield 配置文件的前提下修改资源或者界面。

总的来说,就是没有一个可以控制安装流程的地方,这些在某些细节或者用户体验上来说,是不能够接受的。

4.优点:

(1)InstallScript MSI 工程为每个 Component 都分配一个唯一的GUID,这个ID在安装的时候会写入到注册表,在做升级或者卸载的时候会很方便,

当然,相应的需要增加脚本码执行代码。

(2)能够即时进行页面调试,这个功能在 InstallScript 下是没有的

(3)提供更全面的功能。当前 InstallShield 2014 不支持中文,对功能学习了解只能查看英文用户手册。。很蛋疼。。

总结:

基于上述的几个原因,最终选择了 InstallScript 工程作为最后打包工程。确实,在使用过程中发现 InstallScript 的界面比 InstallScript MSI 更清爽,

出现问题一般都会从编写脚本的角度去考虑解决,这样更有针对性。

当然,对于其他工程,InstallScript 未必是个好的选择,InstallScript MSI 或许更好。

值得一提的是:两个工程在间切换是非常快的,即使中途发现工程类型选择错误,也能够快速切换。

免责声明:文章转载自《InstallShield学习笔记一:工程选择》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Raspberry Pi开发之旅-同步时间windows server 2008 R2服务器安装IIS并添加网站下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

电脑运行msi安装包提示the error code is 2503/2502如何解决

当在电脑中运行msi安装包时,出现the error code is 2503或者2502错误提示,其实是由于没有运行的权限导致的,但是又不能右击以管理员身份运行,那么应该如何操作呢?对于这样的问题,我们可以参考以下方法进行解决。 1、按Win+X选择“命令提示符(管理员)”,或者右击命令提示符选择以管理员身份运行; 2、记住安装包的保存路径,尽量不要...

使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL

接上一篇文章http://www.cnblogs.com/wigis/archive/2012/12/01/2797505.html 在使用bat批处理可以自动部署MySQL服务端后,我们使用InstallShield来达到相同的目的。原理还是一样的,在用InstallShield安装到客户机的指定位置后,运行bat文件。 1.  准备以下文件。在上一步应...

VS2013 生成安装文件

在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012、VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不多,但是处理还是有很大的不同,本文主要基于VS2013的基础上,介绍使用InstallShield2013LimitedEdition的安装包制作。 1、安装...

如何下载Chrome离线版EXE安装文件和MSI版安装文件

对于稳定版(正式版)Chrome来说,只需要在Chrome的“最终用户许可协议”页面链接后面添加”?standalone=1″即可,地址也就是: http://www.google.com/chrome/eula.html?standalone=1 对于Beta以及Dev版Chrome来说,只需要记住下面这个地址: http://dl.google.co...

msi通过powershell安装、卸载

function install_msi($url) { $telemetry = @{ DisplayName = "Telemetry Service"; filename = "TelemetryServiceInstaller_x64.msi" Url = $url } Write-Host $tel...

解决msi文件在XP上安装未完成(提示安装程序被中断,未能安装app。需要重新启动该安装程序进行重试)的问题。

如图所示,我利用Visual Studio 2015制作了一个小程序。基于.Net 4.0。用VS的Install扩展,新建Install项目进行打包。打包为.msi文件。该安装文件在已经安装了 .Net Framework4.0的情况下仍然出现这个问题,百思不得其解。 查阅了Stack Overflow的相关资料,得到了追踪故障源的方法——命令行安装....