代码改变世界

随笔分类 -  InstallShield

Basic INFO:InstallShield的Installation Designer中各设置视图按照序号显示

2011-08-18 16:56 by Kevin.Wan, 905 阅读, 收藏, 编辑
摘要: 首先给大家看最终效果图:各设置视图按照序号显示,我个人认为这样显示效果不错,可以提醒安装包开发人员按步骤进行相关属性的设置。但InstallShield默认界面并非这样显示,显示此效果的步骤如下:Tools -> Options -> User Interface选项卡中,View Organization分组中,View List Styles选择Developers 7,见下图注意:目前确认InstallShield 12(包括12)版本支持此设置,而InstallShield 2009版本已经不在支持。InstallShield 2008尚未确认,如果有使用InstallSh 阅读全文

Basic INFO: InstallScript工程的安装包中如何去掉对话框Title中的InstallShield字符串

2011-08-18 15:27 by Kevin.Wan, 2532 阅读, 收藏, 编辑
摘要: 经常有人问到InstallShield的InstallScript工程中,对话框Title的InstallShield Wizard字符串如何去掉。其实就是在OnBegin中添加一句话:function OnBegin()begin SetTitle(IFX_PRODUCT_NAME + " Kevin Wan's Wizard", 0, BACKGROUNDCAPTION);end;效果见下图: 阅读全文

INFO:InstallShield工程中如何将安装包集成的Prerequisites安装文件压缩到一个Setup.exe中

2011-08-18 10:48 by Kevin.Wan, 2941 阅读, 收藏, 编辑
摘要: InstallShield工程中,我们有时会集成第三方安装包,通过Prerequisites的方式安装。如果安装包需要压缩成一个Setup.exe,其他内容项如果按照默认设置,结果将如下图:会出现一个额外的ISSetupPrerequisites文件夹,这不符合我们将所有内容压缩到一个Setup.exe的要求。解决上述问题方法如下:在Release视图中,在Setup.exe的选项卡下设置InstallShield Prerequisites Location属性,设置为Extract From Setup.exe,如下图:需要注意的是,我们在Prerequisites的添加视图中,通过Pro 阅读全文

InstallShield - Kevin Wan的博文索引

2011-08-16 09:43 by Kevin.Wan, 2755 阅读, 收藏, 编辑
摘要: InstallShield 2012新功能试用(2)- 调用MsiGetProperty等MSI API发生变化(2011-09-16 15:53) Windows 8(Windows Developer Preview)先体验(2011-09-15 17:52) Basic INFO - XCopyFile2(2011-09-15 11:51) Basic INFO: 关于Windows系统中Program Files文件夹名显示的初探讨(2011-09-02 16:44) ... 阅读全文

BUG:InstallShield的安装包中获取命令行参数可能存在错误解析

2011-08-01 09:35 by Kevin.Wan, 994 阅读, 收藏, 编辑
摘要: 截止InstallShield 2011版本,如果在通过CMDLINE等方式获取命令行参数,获取的参数可能存在解析错误。比如在命令行输入“Setup.exe /disp Intel”这样的命令行参数。在InstallScript中通过CMDLINE获取的参数将只有“Intel”这个字符串。目前暂无修正的版本,大家只能在传入以D开头的命令参数时,避免使用“/”或“-”等字符。 阅读全文

Basic INFO: InstallShield中如何获取所调用Exe的返回值

2011-07-08 16:14 by Kevin.Wan, 2594 阅读, 收藏, 编辑
摘要: 这里我们假设我们通过LaunchAppAndWait去调用某个exe,该exe有返回值。代码如下:LaunchAppAndWait ( szProgram, szCmdLine, LAAW_OPTION_WAIT );nResult = LAAW_PARAMETERS.nLaunchResult;nResult中保存的就是返回值。 阅读全文

HOTFIX:InstallShield 2011通过VPN连接到License Server时无法启动

2011-04-15 10:51 by Kevin.Wan, 511 阅读, 收藏, 编辑
摘要: InstallShield 2011浮动版的(Concurrent License)使用过程中,客户端InstallShield 2011从License Server获取动态授权时失败,导致无法启动。这种情况出现在Windows Vista或之后的操作系统上,并通过Microsoft Windows VPN客户端连接License Server时发生上述问题。解决办法:1. 关闭所有的InstallShield 2011。2. 找到InstallShield 2011的System文件夹,默认是"C:\Program Files\InstallShield\2011\System& 阅读全文

INFO: InstallShield不同版本对中文字符串的支持程度

2011-04-14 10:12 by Kevin.Wan, 2651 阅读, 收藏, 编辑
摘要: 近期不断遇到朋友反馈InstallShield对中文字符的支持问题。调查发现,不同的版本支持程度不一样,下面是对InstallShield 2011,InstallShield 2010以及InstallShield 2009三个版本比较获得的数据。 Project Type Feature InstallShield 2011 InstallShield 2010 InstallShield 2009 InstallScript TARGETDIR Suppo... 阅读全文

HOWTO: 如何在InstallShield的MSI工程中调用Merge Module的Custom Action

2011-04-06 10:13 by Kevin.Wan, 2126 阅读, 收藏, 编辑
摘要: 在MSI工程中,我们可能会遇到调用第三方Merge Module的情况,并且可能会调用该Merge Module的Custom Action(简称:CA),下面我们将举例示范如何调用。首先我们需要自创建一个Merge Module,在创建工程时选择Merge Module Project,在该Merge Module中添加两个CA,分别为InstallMM,UninstallMM,见下图:然后我们另外创建一个Basic MSI工程来示范如何调用Merge Module中的CA:1. 在Redistributes视图中添加我的Merge Module,见下图:2. 之后在Custom Actio 阅读全文

Basic INFO:InstallShield的InstallScript MSI工程中如何添加用户协议界面

2011-03-31 14:58 by Kevin.Wan, 1059 阅读, 收藏, 编辑
摘要: 在InstallShield中,通过工程向导创建的InstallScript MSI工程中,默认情况下是没有用户协议界面的。所以我们需要通过修改脚本的方式实现:首先是在事件响应函数OnFirstUIBefore中添加SdLicense2Ex,部分代码段见:Dlg_SdWelcome:szTitle="";szMsg="";nResult=SdWelcome(szTitle,szMsg);if(nResult=BACK)gotoDlg_SdWelcome;Dlg_SdLicense2:szTitle="";szOpt1="&q 阅读全文

Basic INFO:InstallShield 工程如何制作Network Image安装包(即安装包为一个Setup.exe文件)

2011-03-16 17:38 by Kevin.Wan, 2784 阅读, 收藏, 编辑
摘要: 这是基础内容,制作Network Image安装包(安装包为一个单独的Setup.exe),现按照各种工程类型分开介绍。InstallScript工程:方法1:直接在Project Assistant -> Build Installation界面中,勾选Single Executable,然后点击最下边的Build Installations按键进行编译。方法2:通过Release Wizard进行设置1. 从工具菜单启动Release Wizard2. Specify a Release界面默认设置,点击Next3. Media Type界面中,Media Type的下拉菜单中选择N 阅读全文

HOWTO:InstallShield工程中自定义Merge Module的安装路径长度受限

2011-03-15 10:35 by Kevin.Wan, 692 阅读, 收藏, 编辑
摘要: 在InstallShield工程中,如果我们添加了Merge Module并自定义其安装路径,长度受限,只能接受51个字符,见下图:解决方法如下:第一步:首先在Components视图中添加一个空的Component,然后指定其安装路径(这里就指定Merge Module要安装的路径),之后注意这个Components的Destination属性,见下图:注意这里用大括号{}括起来的红色部分。第二步,在Merge Module的Property界面中,指定Destination的路径,从下拉菜单中选择[MERGE_MODULE_SAMPLES]这项(其与前一步红色部分内容一致)。上述方法只对I 阅读全文

Basic INFO:InstallScript工程中安装包写入的默认注册表信息如何删除

2011-03-09 12:08 by Kevin.Wan, 1346 阅读, 收藏, 编辑
摘要: 在InstallScript工程中,默认情况下,安装包会在注册表中写入如下键值:HKEY_LOCAL_MACHINE\SOFTWARE\{公司名}\{产品名}\{产品版本}安装打包人员可能会通过其他方式向注册表中写入产品信息或者干脆不写,所以默认这部分信息就显的多余,所以我们可以在不需要它的情况下去掉。具体操作方法是:在OnMoveData事件响应函数中将CreateInstallationInfo(); 这段注释掉即可。注意:此方法只适用于InstallScript工程类型,对InstallScript MSI无效。版权声明: 转载时请务必以超链接形式标明文章原始出处和作者信息 阅读全文

INFO:InstallShield Express版本不支持64位安装包制作

2011-03-05 23:13 by Kevin.Wan, 1517 阅读, 收藏, 编辑
摘要: 有一些朋友在使用InstallShield Express版本,对于这些朋友来说,如果想实现64系统的支持,那必须升级到Professional或Premier版本。详细见InstallShield的Feature说明:http://www.flexerasoftware.com/products/installshield/features.htm 阅读全文

INFO:InstallShield工程中System Search的使用注意事项

2011-03-04 15:27 by Kevin.Wan, 954 阅读, 收藏, 编辑
摘要: 应用程序运行往往有一些环境依赖,所以我们会在安装包中设置安装条件,满足条件的情况下才继续安装,否则提示用户并退出安装。在InstallScript MSI和Basic MSI工程中,我们可以在Project Assistant的Installation Requirements设置界面中, 通过左上角的Create a custom software condition来添加。1. 设置查找项,我们选择Registry entry2. 设置注册表键值等内容,这里我们在Local Machine下查找,键为:SOFTWARE\Kevin Wan\System Search Wizard,键值为I 阅读全文

HOWTO:InstallShield的Basic MSI工程中如何增加序列号输入选项

2011-03-04 10:35 by Kevin.Wan, 2048 阅读, 收藏, 编辑
摘要: 在Basic MSI的工程类型中,序列号输入功能默认已经在CustomerInformation界面中实现,所以只需要通过如下设置,即可将序列号输入添加到您的工程中:1. 在Installation Designer的Dialogs视图中,找到CustomerInformation界面,选择序列号输入框,之后在右侧Mark属性中指定序列号模板(例如:????-????-???????,“?”代表可以接受数字和字符,如果设置为“#”,则只能接受数字)。2. 在Property Manager中添加ISX_SERIALNUM Property(InstallShield中默认添加一个Proper. 阅读全文

Basic INFO:安装包卸载之后为什么目标机上有文件残留

2011-03-01 11:44 by Kevin.Wan, 1558 阅读, 收藏, 编辑
摘要: 鉴于安装打包过程中,经常会有一些基本知识,在各种交流场合总是被不断问及,所以计划陆续写一些相关文章。今天的主题是《安装包卸载之后为什么目标机上有文件残留》。卸载后文件残留有很多原因,我归纳为以下几类:1. 卸载时程序正在运行、或文件正在占用。2. 非InstallShield标准框架内添加安装的文件,比如我们通过脚本代码或第三方程序在安装过程中复制到目标机安装路径下的文件。3. 应用程序在运行过程中产生的文件,这部分也不会被删除,非安装包安装的文件自然不会在卸载时删除。4. 在InstallShield工程中,将Component的Uninstall属性设置为Yes。出现上述情况,还需要清除安 阅读全文

INFO:InstallShield工程中如何让安装包初始化界面隐藏

2011-02-28 15:12 by Kevin.Wan, 3084 阅读, 收藏, 编辑
摘要: 关于安装包中如何隐藏初始化对话框,一直有朋友在问,今天受网友眼泪成诗和马修的启发,并查看InstallShield帮助文档《Setup.exe and Update.exe Command-Line Parameters》一节,现简单总结如下:在InstallShield制作的安装包中,可以通过参数hide_progress隐藏启动初始界面,但工程不同,应用方法不同:InstallScript工程:设置方法:在Installation Designer-> Media -> Releases -> Release * -> Setup.exe选项卡中,Setup Com 阅读全文

HOWTO:在Visual Studio中如何创建或打开InstallShield工程

2011-02-25 11:42 by Kevin.Wan, 1268 阅读, 收藏, 编辑
摘要: InstallShield一直以来,都能够与Microsoft Visual Studio很好的集成在一起,这边便于开发者集中管理项目工程以及编译、封装。在Visual Studio中创建InstallShield工程:1. 在工具菜单File项中选择New,点击Project,打开一个New Project对话框。2. 在Visual Studio 2010中,在Installed Templates选项中,点击InstallShield 2011,之后选择工程类型。注意:如果是Visual Studio 2010之前的版本,此处操作步骤稍有差别,在Project Templates选项中, 阅读全文

INFO:是否以管理员权限启动InstallShield的区别

2011-02-25 11:08 by Kevin.Wan, 2160 阅读, 收藏, 编辑
摘要: 在Vista和Windows 7平台上,是否以管理员权限启动InstallShield是有很大不同的,如果不用管理员权限启动InstallShield,则如下一些功能将无法使用:1. COM的抽取2. 可分发部署包的下载3. 指定InstallShield Prerequisites的位置4. 指定Merge Modules的位置5. 指定DIM文件的位置6. 编辑指定Regasm.exe和InstallUtilLib.dll文件的位置7. 指定InstallShield升级检查的频率版权声明: 转载时请务必以超链接形式标明文章原始出处和作者信息 阅读全文