installshield学习笔记

上传人:飞****9 文档编号:129456275 上传时间:2020-04-22 格式:DOC 页数:34 大小:950.50KB
返回 下载 相关 举报
installshield学习笔记_第1页
第1页 / 共34页
installshield学习笔记_第2页
第2页 / 共34页
installshield学习笔记_第3页
第3页 / 共34页
installshield学习笔记_第4页
第4页 / 共34页
installshield学习笔记_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《installshield学习笔记》由会员分享,可在线阅读,更多相关《installshield学习笔记(34页珍藏版)》请在金锄头文库上搜索。

1、安装前设置界面公司标识在OnBegin函数中,添加如下脚本:SetTitle(IFX_PRODUCT_NAME + -Infomedia, 0, BACKGROUNDCAPTION);安装中安装.netRegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); if(RegDBKeyExist(SOFTWAREMicrosoft.NETFrameworkpolicyv4.0)0)then if(AskYesNo(尚未安装.net framework4.0!n是否安装?,YES)then if(LaunchAppAndWait(SUPPORTDIRdotNetFx40_Fu

2、ll_x86_x64_en.exe, /norestart,WAIT)0)then SprintfBox(MB_OK,.NET安装,安装.net框架发生意外!); else InstallNet=TRUE; endif; else InstallNet=FALSE; endif; elseendif;注:InstallNet在开始定义BOOL类型修改OnFirstUIAfter中的脚本以判断是否重启。vbs控制IIS直接使用 adsutil.vbs IIS自带的脚本来做的.基本上IIS的所有操作都可以用这个脚本完成.目录在C:inetpubAdminScriptsServerManagerCm

3、d.exe 管理安装服务器角色参数名称:修改IIS中ISAPI和CGI限制%windir%system32inetsrvappcmd.exe set config /section:isapiCgiRestriction /path=C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_isapi.dll.allowed:True控制文本框自定义界面,如果控制文本框此时,当选择文本框时,便可取消其它选项的状态。多语言安装不同语言的安装文件放到不同的Components里,然后设置相应的安装语言条件即可获取安装环境语言获取Version信息读取Produ

4、ctVersion PropertyInstallshield获取安装包版本的系统变量为IFX_PRODUCT_VERSION打开对话框的时候按某个路径打开打开某一个路径的文件夹用这个函数 ShowProgramFolder ( szFolder, nCommand );判断服务状态ServiceGetServiceStateInstallshield环境变量的追加与删除= 环境变量的追加与删除 = 环境变量的添加或追加 =* 问题:如何能在安装包中添加环境变量,而不用用户手动在我的电脑/属性/高级/环境变量中设置,特别是,如何能判断已有的环境变量,如Path,在不改变已有的环境变量的内容的基

5、础上,进行追加呢?* 解决方案:添加环境变量时,可以通过注册表中相应位置写键值的方式完成:HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment.首先判断Path是否存在,如果不存在,创建,如果存在,已有的内容进行追加。追加的方法参考如下代码:function AddPath() NUMBER nResult,nType,nSize,nvSize,nvType;STRING strResult,szkey,szNumName,szNumValue,nRootKey,szPath,szPath2; STRING

6、 TITLE, szFormat; begin RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); szkey=SYSTEMControlSet001ControlSession ManagerEnvironment;/ has no the key, then create the key if (RegDBKeyExist(szkey) 0)then if (RegDBCreateKeyEx(szkey, ) 0) thenMessageBox (RegDBCreateKeyEx failed., SEVERE);return FALSE;endif;endi

7、f; /添加系统路径 RegDBGetKeyValueEx(szkey,Path,nvType,szPath,nvSize);if szPath!= then PathSet(szPath); if (PathAdd(TARGETDIRscratchbin, , FULL, AFTER) 0) thenMessageBox (Unable to add to path buffer., SEVERE); abort;endif; PathGet(szPath);Disable(LOGGING);if (RegDBSetKeyValueEx(szkey,Path,REGDB_STRING,szP

8、ath,-1) 0) thenMessageBox (RegDBSetKeyValueEx failed., SEVERE);return FALSE;endif; Enable(LOGGING);elseszPath=TARGETDIRscratchbin;/ Set a key name and a value associated with it.Disable(LOGGING);if (RegDBSetKeyValueEx(szkey,Path,REGDB_STRING,szPath,-1) 0) then MessageBox (RegDBSetKeyValueEx failed.,

9、 SEVERE);return FALSE;endif; Enable(LOGGING); endif; end;= 卸载时如何删除追加的环境变量的问题 =* 问题:安装包卸载时,如何能不改变已有的环境变量的内容,只是删除追加的环境变量?* 解决方案:参考如下,特有的关键字删除即可,案参考以下代码片段,即可实现。function DelPath() NUMBER nResult,nType,nSize,nvSize,nvType;STRING strResult,szkey,szNumName,szNumValue,nRootKey,szPath,szPath2; begin RegDBSet

10、DefaultRoot(HKEY_LOCAL_MACHINE); szkey=SYSTEMControlSet001ControlSession ManagerEnvironment;/添加系统路径 RegDBGetKeyValueEx(szkey,Path,nvType,szPath,nvSize); if szPath!= then PathSet (szPath);PathDelete (scratch, PARTIAL); endif; end;= 追加方式的卸载问题 =问题:当卸载的时候,却发生了一件事情,那就是,原来系统已经有的环境变量Path也被自动删除了,这会影响到其他软件的使

11、用。解决方案:原来,installsheild会记录所做的操作在log信息中,卸载时,会自动进行清理动作。那么如何才能避免呢?RegDBSetKeyValueEx函数调用之前,可以先Disable(LOGGING);调用之后,在Enable(LOGGING); 即可解决这个问题。= Dos命令无法使用的问题 =* 问题:所有的dos命令,如ping 不能使用了。* 解决方案:在网上查找,只找到问题,没有搜索到解决方案,于是,只能一一查看Help,发现RegDBSetKeyValueEx的第三个参数引来的问题,需要修改第三个参数为REGDB_STRING_ EXPAND,因为在XP下,path含

12、有一个%SystemRoot%的相对路径,如果使用了REGDB_STRING,所有的dos命令将都不能使用,此时,在dos下输入path一看,该替换成绝对路径的地方都没有替换掉,IS程序里键值设置时候的类型问题,REGDB_STRING是不认识相对路径的,换成REGDB_STRING_ EXPAND就可以了。 重复性安装basicMSI用basicMSI的工程,customactionandsequences里的maintenancewelcome中conditions设置为0,然后readyToInstall里设置成NotPATCHOrIS_MAJOR_UPGRADE我就是用这个方法解决的获

13、取安装包路径SETUPEXEDIR可以直接获得重复性安装探讨通过删除这两个CA,安装后注册表Unistall路径下只有一个安装值,而且为空可以在安装完毕时,用脚本删掉即可实现Installscript MSI 工程的重复性安装,对于卸载,暂时没有更好的方法去实现(无非就是直接删除文件罢了)显示安装进度内容SetStatusWindow (-1, 正在。,请稍候.);MSU文件安装if(FeatureIsItemSelected(MEDIA,szMediaServer)=1)thenif (SYSINFO.bIsWow64) then LaunchAppAndWait(wusa.exe,TARG

14、ETDIR+MediaServerWindows6.0-KB934518-x64-Server.msu,LAAW_OPTION_WAIT); elseLaunchAppAndWait(wusa.exe,TARGETDIR+MediaServerWindows6.0-KB934518-x86-Server.msu,LAAW_OPTION_WAIT);endif;endif;LaunchAppAndWait 获取执行返回值Uac安装后安装重启后继续安装很多朋友做安装包的时候,所打包的软件需要.NET Framework之类的环境,他们会检测系统是否已经安装了.NET,如果没有,则调用.NET安装包来安装。但是.NET安装完是需要重启动的,一般来说,我们都推荐使用/q/norestart的静默安装函数来使重启动推迟到安装结束时,使用如下:LaunchAppAndWait(SUPPORTDIRdotNetFx40_Full_x86_x64.exe,/q /norestart,WAIT);.NET在重启后才能生效,但是如果在安装完.NET之后的安装行

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号