代码改变世界

随笔分类 -  InstallShield

INFO:InstallShield安装包能否制作一个32/64位都支持的统一安装包

2011-02-25 09:43 by Kevin.Wan, 5860 阅读, 收藏, 编辑
摘要: 随着Windows 7发布以来,使用64位系统的终端用户越来越多,很多平台电脑出厂预装的就是64位Windows系统,64位系统正逐步得到普及,很多软件产品厂商需要将他们已有的应用程序扩展到64位平台上。除了应用程序本身需要支持64位外,随之带来的问题是安装包也需要支持64位。InstallShield本身支持64位安装包的封装,但在最终封装时,大家都希望能将32位和64位的应用封装到一个安装包中,这样便于软件传播,分发,但“希望很美好,现实很无奈”,无法将其封装到一个安装包文件中。在Template Summary属性设置项中,我们必须指定是支持x86,或x64或Intel64,这是一个排他 阅读全文

INFO:使用InstallShield过程中,软件异常退出或崩溃时如何寻求帮助

2010-12-08 09:13 by Kevin.Wan, 2019 阅读, 收藏, 编辑
摘要: 如果我们在使用InstallShield过程中,遇到InstallShield主程序isdev.exe程序异常退出或崩溃的时候,大家可以通过以下方式寻求帮助:在InstallShield的安装目录的System文件夹中(InstallShield的运行程序都在这个位置),找到一个名为InstallShield.log的文件,然后将此文件发送给厂商技术支持,或者发到厂商技术论坛寻求帮助。版权声明: 转载时请务必以超链接形式标明文章原始出处和作者信息。 阅读全文

INFO:InstallShield工程类型转换说明

2010-12-07 10:00 by Kevin.Wan, 3288 阅读, 收藏, 编辑
摘要: 使用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 阅读, 收藏, 编辑
摘要: 大家都清楚Vista和Windows 7的UAC问题,安装包中我们可以通过权限提提升获得系统操作权限。如果是Setup.exe形式的安装包,我们在InstallShield工程中是通过如下方式实现安装包权限提升的:Release视图 -> Setup.exe选项卡 -> 将Required Execution Level 属性设为Administrator。如果是单个MSI包,我们如何实现权限提升呢?Installation Information -> General Information -> Summary Information Stream, 将Requir 阅读全文

INFO:InstallShield工程中如何通过Registry视图快速实现安装包注册表写入

2010-11-28 19:55 by Kevin.Wan, 2362 阅读, 收藏, 编辑
摘要: 在制作安装包过程中,我们经常会修改系统注册表,所以我们经常写脚本函数操作注册表。其实除了通过脚本函数操作外,我们还可以利用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 阅读, 收藏, 编辑
摘要: 最近遇到很多朋友利用SUPPORTDIR调用安装过程文件失败,在这里提供解决方法:如果是InstallScript工程,那在脚本中直接通过SUPPORTDIR调用时没有问题。如果是Basic MSI工程,则需要通过MsiGetProperty获取SUPPORTDIR的值,通过这个路径才能够正确找到你的Support Files,直接利用SUPPORTDIR将拿到一个错误的路径,事实上这个文件夹也会在安装过程中存在。额外说明一下,对于安装过程中用到的文件或程序,我们经常选择放到Support Files的Language Independent下,然后通过SUPPORTDIR调用。这些文件只会存 阅读全文

SOLUTION:MSI安装包嵌套调用解决方案

2010-11-25 16:59 by Kevin.Wan, 4245 阅读, 收藏, 编辑
摘要: 首先要感谢网友爱新觉罗.奕,是他首先将此方案发布出来,详细见AppInstall网站中《单MSI引导多MSI安装和卸载》一章,http://www.appinstall.cn/viewthread.php?tid=840&extra=page%3D1。有关安装包嵌套调用,之前也琢磨过很多中办法,IntallScript,InstallScript MSI,MSI各种类型互相嵌套,但惟独发现MSI包无法嵌套,原因很简单,Windows Installer只接受单实例安装。解决方案:1. 首先创建主Basic MSI工程,设计组织你的安装程序。2. 【Installation Design 阅读全文

InstallShield - Kevin Wan博客文章索引列表(001~100)

2010-11-23 01:32 by Kevin.Wan, 3578 阅读, 收藏, 编辑
摘要: INFO:InstallAnywhere的Enterprise版本和Standard版本的主要区别(2010-11-19 17:06) HOWTO:InstallShield中添加一个卸载快捷方式或设置反卸载 - DISK1TARGET(2010-11-19 13:54) HOWTO: InstallShield中通过修改注册表关闭Vista/Windows 7的UAC(2010-11-18 14:20) HOWTO:InstallScript工程中如何在用户协议界面中默认为接受协议(2010-11-1... 阅读全文

HOWTO:卸载InstallShield Professional版本之后,Visual Studio编译报错"An error occurred while validating. HRESULT='80040155'"

2010-11-22 16:56 by Kevin.Wan, 1511 阅读, 收藏, 编辑
摘要: 该问题会在发生在使用InstallShield 7.0 Developer,以及InstallShield 12 Professional版本用户身上。发生InstallShield 7.0影响Visual Studio .Net(VS 2003),InstallShield 12影响Visual Studio 2005的案例。原因是InstallShield在卸载的时候,反注册了Visual Studio的一些关键文件。具体解决办法:遇到上述的客户,可以将下面内容保存到.reg文件中,然后导入到注册表中Code highlighting produced by Actipro CodeHig 阅读全文

INFO:在InstallShield中修改安装包压缩.cab包的大小

2010-11-21 00:48 by Kevin.Wan, 3107 阅读, 收藏, 编辑
摘要: 如果我们用InstallShield打包一个数据非常大的安装包(Basic MSI和InstallScript MSI工程类型),默认情况下安装包会产生多个.cab文件,这里简单说明我们如何修改安装包中.cab文件的大小。首先,有个信息大家需要知道,单个.cab文件最大不能超过2GB。下面,我们具体来说如何修改默认.cab的大小:在InstallShield安装目录下找到Settings.xml文件,具体路径是: 英文版 - InstallShield安装路径\Support\0409 日文版 - InstallShield安装路径\Support\0411修改之前先备份一份Setti... 阅读全文

HOWTO:InstallShield中添加一个卸载快捷方式或设置反卸载 - DISK1TARGET

2010-11-19 13:54 by Kevin.Wan, 3654 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。今天讨论的两个功能用到一个系统变量DISK1TARGET,InstallShield 2010中帮助里是这么解释的(DISK1TARGET:This system variable contains the path to the folder in which copies of certain of the installation's files (such as the compiled script file) are placed to enable maintenance installatio 阅读全文

HOWTO: InstallShield中通过修改注册表关闭Vista/Windows 7的UAC

2010-11-18 14:20 by Kevin.Wan, 2483 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。这是一段示例代码,仅供参考。此问题不会彻底解决安装包在Vista/Windows 7上的权限提升问题,至少对本次安装包是无效的。另外,我们也不建议某个应用程序的安装包代替用户决定UAC是否关闭。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->functionOnBegin() STRINGszKey,szName,szValue; NUMBERnType,nSize 阅读全文

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

2010-11-18 13:41 by Kevin.Wan, 2532 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。老实说,这个方法是各位网友共享的,之前我自己没想到过这个办法。InstallScript工程中,截止目前,用户协议界面有六个对话框可用,它们分别是:SdLicense,SdLicense2,SdLicenseEx,SdLicense2Ex,SdLicenseRtf和SdLicense2Rtf。我们修改的方法是利用上述对话框中的一个布尔类型的参数,具体位置各函数不一致(其中SdLicense和SdLicenseRtf没有此参数)。在InstallShield 2010中,修改方法如下:- SdLicense其实调用的是 阅读全文

HOWTO:InstallShield中如何调用批处理文件

2010-11-18 09:51 by Kevin.Wan, 7315 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。在InstallShield中调用批处理文件其实是安装打包中很常用的一种手段,通过批处理启动服务,进行数据库初始配置等等。在实际操作中,针对不同工程类型,对批处理的调用还是有很多疑惑困扰着大家,撰写此文希望能帮助到那些被困扰的打包开发人员。这里假设我们的需求是要启动安装路径下的批处理文件Sample.bat。InstallScript工程:这种类型调用批处理相对简单,通过LaunchAppAndWait函数进行调用,下面是简单示例:Code highlighting produced by Actipro CodeH 阅读全文

HOWTO:InstallShield中如何判断IIS是否安装以及安装的版本

2010-11-16 23:41 by Kevin.Wan, 3277 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。近期被问及在InstallShield的脚本中如何判断IIS(Internet Information Services)是否被安装,或者是判断目标机上安装的IIS版本。我们这里是通过读取注册表的方式来进行判断。对于Basic MSI或InstallScript MSI工程,还可以通过IIS_VERSION属性进行判断,大家有兴趣可以去琢磨一下。下面是通过注册表方式判断的示例代码(我们在事件响应函数OnAppSearch进行判断)Code highlighting produced by Actipro CodeHi 阅读全文

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

2010-11-16 11:40 by Kevin.Wan, 5745 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。这是一个Basic MSI基础知识,有不少网友问,所以我再啰嗦一遍。A. 首先在Installation Designer/Behavior and Logic/InstallScript视图中,选中Files点击鼠标右键选择“New Script File”,默认会生成一个setup.rul的文件,并有一个MyFunction的函数声明和。B. 之后我们在MyFunction函数内添加一行代码:MessageBox("MyFunction", INFORMATION);当然,你也可以修改函数名, 阅读全文

HOWTO:在InstallShield脚本中打开一个URL链接

2010-11-16 10:51 by Kevin.Wan, 2721 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。之前网络中有建议采用如下方法打开一个URL链接:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->LaunchAppAndWait("http://www.cnblogs.com/installshield","",LAAW_OPTION_WAIT);但验证发现无法打开,所以建议用另外一种方式打开一个URL链接:Code hig 阅读全文

HOWTO:InstallShield中如何制作静默安装包-IntallScript或InstallScript MSI工程类型

2010-11-15 14:41 by Kevin.Wan, 6132 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。这篇文章,拖欠大家很久了,之前一直答应朋友们写一篇有关静默安装的文章,结果是一拖再拖。静默安装包(Silent Installation):所谓静默安装包,有这么几个特点:安装过程没有界面;安装过程不需要用户进行任何输入;也不会在Taskbar中显示一个安装程序的Icon。如何创建一个静默安装包:1. 静默安装包的制作是在主程序完成后进行的,先录制静默脚本文件,通过在命令行运行安装包Setup.exe 给入参数/r,这时会启动的依然是有界面操作的安装,按照正常操作方式完成安装。2. 完成上一步之后,会在系统的Wind 阅读全文

HOWTO:InstallShield中如何通过脚本获取“My Documents”路径

2010-11-13 17:37 by Kevin.Wan, 2772 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。如果需要获取当前用户的“我的文档”路径,可以通过以下脚本代码获取:#define CSIDL_PERSONAL 0x0005 // for My Documents prototype NUMBER SHFolder.SHGetFolderPathA(HWND, NUMBER, NUMBER, NUMBER, BYREF STRING);脚本中通过以下代码调用:SHFolder.SHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, 0, szMyDocumentsFolder ). 阅读全文

INFO:InstallShield工程中关于.NET依赖项的编译扫描警告

2010-11-10 16:18 by Kevin.Wan, 3440 阅读, 收藏, 编辑
摘要: 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。在编译InstallShield工程时,如果出现大量的类似警告信息 “ISDEV:warning -6248: Could not find dependent file... of component...”如果你可以确定所打包的应用程序依赖没有问题,可以通过以下方法消除警告:1. 在Installation Designer/Organization/Components视图中,找到相应的Component。2. 在Component的.NET Settings分组中,将属性.NET Scan at Build由 阅读全文