摘要:在用InstallShield制作安装包时,有时我们会在脚本中通过操作注册表,配置系统环境变量,比如在Path中追加,但卸载时如何清除追加的路径变量,一直有些模糊。今天受网友启发,在InstallShield的帮助文档中找到了解决办法,代码如下:Code highlighting produced ... 阅读全文
HOWTO:如何在代码中获取安装包目标机上的Windows Installer(MSI)版本
2011-01-21 16:11 by Kevin.Wan, 1090 阅读, 1 推荐, 收藏, 编辑
摘要:如果只是查看目标机上的Windows Installer版本,直接在运行中输入msiexec,敲回车弹出的消息框就可以看到Window Installer的版本。但如果需要通过编码的方式获取Windows Installer的版本,可以读取系统System32文件夹下的msi.dll的文件版本号。由于InstallShield没有提供直接获取文件版本号的API,所以大家可以写一个DLL,然后在InstallScript中调用。另外一种方法,InstallShield中虽然没有现成的InstallScript API可以用,但还是有方法的,具体操作如下:1. 将你的安装包所需要的最低版本Wind 阅读全文
InstallShield - Kevin Wan博客文章索引列表(101~)
2011-01-18 11:55 by Kevin.Wan, 1616 阅读, 1 推荐, 收藏, 编辑
摘要:INFO:InstallShield工程中如何让安装包初始化界面隐藏(2011-02-28 15:12) HOWTO:在Visual Studio中如何创建或打开InstallShield工程(2011-02-25 11:42) INFO:是否以管理员权限启动InstallShield的区别(2011-02-25 11:08) INFO:InstallShield安装包能否制作一个32/64位都支持的统一安装包(2011-02-25 09:43) HOWTO:InstallShield工程中如何使得动态文件链接方式也可以创建快捷方式(2011-02-24 14:40) NEWS:Flexer. 阅读全文
HOWTO:InstallShield Standalone Build环境中编译时找不到Merge Module
2011-01-17 18:52 by Kevin.Wan, 1684 阅读, 0 推荐, 收藏, 编辑
摘要:在InstallShield IDE版本中,我们可以在配置项中指定Merge Module的路径(这些信息是存在注册表中的)。但在Standalone Build环境中,无法进行此设置,用户通过IsCmdBld进行编译时报错,提示我们那些自定义的Merge Module找不到。“ISDEV : error -4075: File not found. An error occurred merging Module...”解决方法1:编译之前将这些自定义的Merge Module复制到Standalone Build安装目录的...InstallShield\2010 StandaloneBu 阅读全文
HOWTO:InstallShield InstallScript工程中如何防止用户反勾选某个Feature
2010-12-30 11:48 by Kevin.Wan, 2067 阅读, 0 推荐, 收藏, 编辑
摘要:有些情况下,我们需要将某个Feature设为必选项,但同时又想让用户在自定义安装类型中看到该Feature(正常我们可以设置Feature的Visible属性为No来实现)。假设我们有两个Feature,A和B,现在需要将Feature A设为必选项,并且要显示。我们通过增加一个Feature C,该Feature不与任何Component做关联,只是为了解决此问题而增加:1. 将Feature C的属性Required Features设为A。2. 将Feature C的属性Visible设为No。3. 在Setup Types视图中,对应Custom类型,默认勾选Feature C,见下图 阅读全文
INFO:InstallShield InstallScript工程中自定义界面文本输入控件的两个注意事项
2010-12-29 15:53 by Kevin.Wan, 2064 阅读, 0 推荐, 收藏, 编辑
摘要:在使用InstallScript工程增加自定义界面过程中,我用到了文本输入控件(Edit Field),用于用户名和密码的输入。首先是用户名,如果用户名长度超过我的控件长度时,发现无法再继续输入内容。解决办法是:在Dialogs编辑界面中,选中控件,点开右侧的Other Windows Styles选项,勾选ES_AUTOHSCROLL,如下图:其次是密码,密码输入时我们不能明文显示,需要采用掩码,在Basic MSI的自定义界面中,有Masked Edit控件,但在InstallScript里只能使用Edit Field。解决办法是:同样在Dialogs编辑界面中,选中控件,右侧属性Pass 阅读全文
HOWTO:InstallShield中如何通过脚本安装第三方MSI包
2010-12-23 11:18 by Kevin.Wan, 3664 阅读, 0 推荐, 收藏, 编辑
摘要:这个问题。。。。。。很简单,但一直有人问,每次还是细节,算了,直接写个小短文吧。下面是一段Sample代码,我们假设MSI文件被放到了Support Files中,并且通过静默安装方式调用第三方MSI包,msiexec的相关参数可以在运行中输入msiexec查看。functionCallThirdMSIPackage() STRING svMsiexec, svParam, svMsiPackage;begin svMsiexec = WINSYSDIR ^ "msiexec.exe"; svMsiPackage = SUPPORTDIR ^ "***.msi&q 阅读全文
SOLUTION:InstallShield安装包中集成第三方安装包的方案选择
2010-12-10 10:11 by Kevin.Wan, 4794 阅读, 0 推荐, 收藏, 编辑
摘要:我们在制作安装包时,有些情况下会涉及第三方安装的集成,这里将讨论如何调用安装第三方包,以及需要注意的事项。第三方安装包的介质类型有很多,主要有:单独的一个Setup.exe,单独的一个msi包,或者是类似光盘结构的一组文件及文件夹的安装包。首先,如何在InstallShield中添加第三方安装包:如果是单独的Setup.exe或单独的msi包,可以将他们添加到【Behavior and logic】 - 【Support Files】 - 【Language Independent】中。如果是一组文件以及文件夹的安装包,可以将他们添加到【Behavior and logic】 - 【Su 阅读全文
HOWTO:VCRedist.exe安装后在系统根目录留下临时文件未被清除的解决办法
2010-12-09 09:32 by Kevin.Wan, 2906 阅读, 0 推荐, 收藏, 编辑
摘要:我们打包基于VC++开发的应用程序,我们会一同打包一个VC运行库,否则安装到一些非开发环境中,你的应用程序依然可以正确运行。Visual C++ 2008 Redistributable Package 包括了(VCRedist_x86.exe,VCRedist_x64.exe以及VCRedist_ia64.exe)。就是一个简单的VCRedist.exe安装集成,结果下载了之后安装,安装完成后在系统或某个盘的根目录下留下一堆的临时文件:临时文件列表调查后发现,这是Microsoft Visual C++ 2008 Redistributable Package的一个已知Bug,微软在SP1中 阅读全文
INFO:使用InstallShield过程中,软件异常退出或崩溃时如何寻求帮助
2010-12-08 09:13 by Kevin.Wan, 2019 阅读, 0 推荐, 收藏, 编辑
摘要:如果我们在使用InstallShield过程中,遇到InstallShield主程序isdev.exe程序异常退出或崩溃的时候,大家可以通过以下方式寻求帮助:在InstallShield的安装目录的System文件夹中(InstallShield的运行程序都在这个位置),找到一个名为InstallShield.log的文件,然后将此文件发送给厂商技术支持,或者发到厂商技术论坛寻求帮助。版权声明: 转载时请务必以超链接形式标明文章原始出处和作者信息。 阅读全文
INFO:InstallShield工程类型转换说明
2010-12-07 10:00 by Kevin.Wan, 3288 阅读, 0 推荐, 收藏, 编辑
摘要:使用InstallShield的过程中,由于之前对各种工程类型了解不是充分,在之后的过程中可能会遇到工程类型转换的需求,下面简单给大家说明哪些工程类型之间可以转换。转换Basic MSI工程到InstallScript MSI工程操作步骤:工具菜单Project/Project Converters,然后选择Convert to InstallScript MSI Project转换Inscript MSI工程到InstallScript工程操作步骤:工具菜单Project/Project Converters,然后选择Convert to InstallScript Project如果是I. 阅读全文
HOWTO: InstallShield中如何实现MSI包的权限提升
2010-12-06 10:36 by Kevin.Wan, 3873 阅读, 0 推荐, 收藏, 编辑
摘要:大家都清楚Vista和Windows 7的UAC问题,安装包中我们可以通过权限提提升获得系统操作权限。如果是Setup.exe形式的安装包,我们在InstallShield工程中是通过如下方式实现安装包权限提升的:Release视图 -> Setup.exe选项卡 -> 将Required Execution Level 属性设为Administrator。如果是单个MSI包,我们如何实现权限提升呢?Installation Information -> General Information -> Summary Information Stream, 将Requir 阅读全文
INFO:InstallAnywhere中如何获得Debug的Log文件
2010-12-02 10:29 by Kevin.Wan, 1909 阅读, 0 推荐, 收藏, 编辑
摘要:使用InstallAnywhere进行安装包开发,难免会遇到需要调试安装包的时候,尤其是自定义的Action等,但InstallAnywhere没有类似InstallShield的Debug界面,所以只能通过Log记录进行调试。安装包Log设置:在Project/Config的Installer Debug Output组中设置Send stderr to和Send stdout to项(最终发布时注意去除该设置项),如下图安装Log设置:在Project/Info的Installation Log组中设置,可以选择文本格式或XML文件格式,还可以选择卸载时是否删除,如下图。上述设置项是以In 阅读全文
INFO:InstallShield工程中如何通过Registry视图快速实现安装包注册表写入
2010-11-28 19:55 by Kevin.Wan, 2362 阅读, 0 推荐, 收藏, 编辑
摘要:在制作安装包过程中,我们经常会修改系统注册表,所以我们经常写脚本函数操作注册表。其实除了通过脚本函数操作外,我们还可以利用Registry视图实现安装过程的注册表修改。InstallScript工程(设置如下图):注意这里只有IFX_COMPANY_NAME,WINSYSDIR脚本变量可以利用,通过<>设置,下面是最终的安装结果:Basic MSI工程类型(设置如下图):在Basic MSI里可以设置通过[]设置Property Manager中的所有内容,下面是我们安装之后的效果:大家注意,这里我设置了一个脚本变量WINSYSDIR,但在Basic MSI工程类型中是无法识别的。 阅读全文
INFO:InstallShield中通过SUPPORTDIR路径调用安装过程文件失败
2010-11-25 17:50 by Kevin.Wan, 6236 阅读, 1 推荐, 收藏, 编辑
摘要:最近遇到很多朋友利用SUPPORTDIR调用安装过程文件失败,在这里提供解决方法:如果是InstallScript工程,那在脚本中直接通过SUPPORTDIR调用时没有问题。如果是Basic MSI工程,则需要通过MsiGetProperty获取SUPPORTDIR的值,通过这个路径才能够正确找到你的Support Files,直接利用SUPPORTDIR将拿到一个错误的路径,事实上这个文件夹也会在安装过程中存在。额外说明一下,对于安装过程中用到的文件或程序,我们经常选择放到Support Files的Language Independent下,然后通过SUPPORTDIR调用。这些文件只会存 阅读全文