InstallShield 教程

来源:互联网 发布:汉堡王 必点 知乎 编辑:程序博客网 时间:2024/06/05 20:22

InstallShield多语言安装包中如何获取用户选择的安装语言

初次安装:Not Installed

修改,修复或删除:Installed

删除(卸载):REMOVE

维护或修复:Installed AND Not REMOVE

小版本升级:IS_MINOR_UPGRADE

大版本升级:IS_MAJOR_UPGRADE

上述适用于InstallShield的Basic MSI工程和InstallScript MSI工程。

InstallShield工程中如何识别初次安装,维护模式和卸载

Basic MSI工程,通过Condition确定安装模式:

  • 第一次安装:Not Installed
  • 修复维护:Installed
  • 卸载:REMOVE=“ALL”

注意:InstallScript MSI工程里的Condition也同Basic MSI工程

InstallScript工程:

通过系统变量MAINTENANCE来判断,在第一次安装,该变量值为FALSE;如果是修复维护或卸载,则该变量值为TRUE。

比如代码可以这样写: 

if (!MAINTENANCE) then 
    // 这次运行第一次安装的执行代码 
endif; 

InstallScript工程中如何在用户协议界面中默认为接受协议

用户协议界面有六个对话框可用,它们分别是:SdLicense,SdLicense2,SdLicenseEx,SdLicense2Ex,SdLicenseRtf和SdLicense2Rtf。

我们修改的方法是利用上述对话框中的一个布尔类型的参数,具体位置各函数不一致(其中SdLicense和SdLicenseRtf没有此参数)。 

在InstallShield 2010中,修改方法如下:

- SdLicense其实调用的是SdLicenseEx,可指定SdLicenseEx的最后一个参数为TRUE。
- SdLicense2调用的是SdLicense2Ex,可指定第五个参数为TRUE。
- SdLicenseEx直接指定第四个参数为TRUE。
- SdLicense2Ex直接指定第五个参数为TRUE。
- SdLicenseRtf调用的是SdLicenseEx,可指定SdLicenseEx的第五个参数为TRUE。
- SdLicense2Rtf调用的是SdLicense2Ex,可指定SdLicense2Ex的第五个参数为TRUE。

InstallShield中Basic MSI工程类型如何调用InstallScript脚本

A. 首先在Installation Designer/Behavior and Logic/InstallScript视图中,选中Files点击鼠标右键选择“New Script File”,默认会生成一个setup.rul的文件,并有一个MyFunction的函数声明和。

B. 之后我们在MyFunction函数内添加一行代码:MessageBox("MyFunction", INFORMATION);

当然,你也可以修改函数名,用更有实际意义字符串代替。 

C. 在Installation Designer/Behavior and Logic/Custom Actions and Sequences视图中,选中顶端的Custom Actions点击鼠标右键选择“Custom Action Wizard”(这里的Custom Action我们经常也简称为CA),下面按着向导逐步说明。

  1.  第一个界面是Custom Action Wizard欢迎界面。
  2. 在第二个Basic Information界面中,选择CA的Name,而Comment可忽略。
  3. 在第三个Action Type界面中,在Type的下拉菜单中选择Run InstallScript Code。(这里你会发现你可以通过CA调用托管代码,其他可执行程序,以及JScript,VBScript等)
  4. 在第四个Action Parameters界面中,在Source的下拉菜单选择的MyFunction。(如果脚本Setup.rul中你有多个函数声明,你会发现都会显示到下拉菜单中)
  5. 之后的界面都按照默认设置,直到点击Finish结束。
D. 在同一树状结构中,Sequences/Installation/Execute,选中Execute点击鼠标右键选择Insert,你会看到在C中你添加的CA,选中你的CA,然后设置Condition。(注意如果是想在安装时执行:Not Installed;如果是卸载执行:Installed)

E. 有关我们的CA在Sequence中的位置, 可根据情况调整位置。

CA可以在Sequence中被调用,也可以在各个Dialog中被调用执行。

InstallShield学习网站推荐

InstallShield工具的学习也是一个渐进的过程,求人不如求己,所以给大家推荐几个好去处。

http://community.flexerasoftware.com/ 这是原厂的技术论坛,自然也是最好的,只是有些朋友可能会觉得英文网站不方便。

http://kb.flexerasoftware.com/ 原厂的知识库,如果深入研究,你会爱上她的。

http://www.appinstall.cn/,新的中文安装打包网站,还不错,只是目前注册用户不多,之前的Jarson中文论坛不知什么原因已经关闭。

另外推荐几个朋友的Blog

Stefan Krueger http://msmvps.com/blogs/installsite/default.aspx

Rod Maupin http://www.installationdeveloper.com/

海洋女神 http://www.cnblogs.com/Cindy_weiwei 

奕婷  http://www.cnblogs.com/sabrinahuang/


转载:http://www.cnblogs.com/installshield/

0 0