InstallShield 打包实例Word文档格式.docx
- 文档编号:16741275
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:28
- 大小:1.55MB
InstallShield 打包实例Word文档格式.docx
《InstallShield 打包实例Word文档格式.docx》由会员分享,可在线阅读,更多相关《InstallShield 打包实例Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
需要选中WindowsInstaller3.1(x86)和Mirosoft.NETFramework3.5:
6.
点击引导条上的InstallationArchitecture
这是个十分有用的设置,对于本文所用的分布式软件来说非常合适,分布式软件的每个组件可以设置为一个Feature,用户可以自由选择安装某些功能。
将选项DoyouwanttocustomizeyourInstallation选择为Yes。
点击选中根节点InstallationArchitecture,点击New创建新的Feature,可以为每个Feature指定新名称。
还可以在Feature下创建子Feature,比如如果文档Feature下包括软件本身文档,和软件所需的运行环境的文档,那么可以创建两个子Feature,分别包含两种文档,用户在安装时就可以选择安装部分或者全部文档了。
这里我们没有用到子Feature,用途和普通Feature一样。
这里,建立好所有Feature后,我们将切换到InstallationDesigner做一个设置
找到InstallationDesigner页面上左边导航树Organization|Features分支,你会看到这里Features都显示为原始的名称,而非我们改过的名字,因为Feature有Name和DisplayName两种名称,我们刚才改的不过是DisplayName,为了便于查看和使用,我们在这里把Name也改一下
注意Name不可以有空格,可以使用下划线
7.点击引导条上的ApplicationFiles
我们将在这里对安装路径进行微调,并且为每个Feature指定需要安装的文件
这里我不想使用ProgramFiles|CompanyName|ProductName这个路径,我想使用ProgramFiles|ProductName,我直接点击选中MyProductName[INSTALLDIR]拖动到ProgramFileFolder下,还可以直接将MyProductName改成自己想要的文件夹名字
接下来,为每个Feature指定要安装的文件。
打开这个下拉列表,所有的Feature都在这里,按顺序来给每一个Feature建立文件夹,并且导入所需的文件。
选择第一个Feature,即Server,点击MyProductName[INSTALLDIR]节点,右键点击,在菜单上选择NewFolder来创建一个文件夹。
创建一个Server文件夹,这个文件夹将用来存放该组件需要的一些文件。
再在Server文件夹下创建一个icon文件夹,存放该组件所用的图标。
然后为该Feature添加安装时该Feature要安装的文件。
这里我们建立的icon文件夹是用来存放这个feature在后面要建立快捷方式时使用的图标的。
为这个icon文件夹添加相应的图标文件,并且记住图标文件的来源文件夹,后面设置快捷方式的时候要用。
点击选中要添加文件的文件夹,然后点击右下角的AddFiles,然后添加文件
接下来我们为Feature添加文件夹,如果这个文件夹中的全部文件都为这个Feature所需。
添加文件夹的好处在于只要文件夹位置和名称不变,那么文件夹里面的文件都是动态加载的,有多少加载多少,不用考虑文件名的改动带来的影响。
点击选中要添加文件夹的文件夹,然后点击右下角的AddFolders,然后添加文件夹。
选中文件夹,点击确定。
会询问你是否要使用动态文件链接,我都选择确定,好处就在于我刚才上面所述。
显示了源文件夹,如果这个文件夹下有子文件夹,并且也需要一并添加进来的话,务必钩选Includesubfolders选项。
这里还允许做一些简单设置来包含或者排除一些特定文件,支持通配符。
点击OK确定加入文件夹。
如法炮制为每个Feature建立文件夹,并且添加文件,最后效果如图所示
Document这个Feature,除了文件所用的图标外,什么都不要添加,后面我们将用安装时实时拷贝的方式来拷贝文档进来。
8.接下来我们为可执行文件创建快捷方式。
点击引导条上的ApplicationShortcuts
点击New新建一个快捷方式
选择一个要建立快捷方式的Feature。
如果要建立快捷方式的程序为非.exe形式,请把FilesOf选择选为AllFiles(*.*)格式。
我们的程序安装目标路径设置在ProgramFiles下,因此双击[ProgramFilesFolder]打开,层层点击进入。
我们这里要为client.bat建立一个快捷方式,因为这个是启动用的批处理文件。
Installshield可以自动监测到.exe文件的存在,自动生成快捷方式,用户只需要做一些适当修改即可。
新建的快捷方式将出现在这里,名字不好听,样子也不好看,我们将为它改一个名字,并且换一个图标。
选中快捷方式,点击Rename,并且为这个快捷方式改一个适当的名字。
注意右边的几个选项。
CreateshortcutinStartMenu,将在开始菜单里创建一个快捷方式。
CreateshortcutonDesktop,将在桌面上创建一个快捷方式。
UsealternateshortcutIcon,替换快捷方式的图标
Associateafileextensionwiththeshortcut’starget,没用过,不知道什么意思。
我们在这里将只创建开始菜单的快捷方式,因此钩选第一项。
钩选第三项,并且点击Browse来浏览图标。
请回想刚才在为Feature添加文件的时候,每个feature都添加了对应的icon。
这里,请把浏览的文件夹设定为刚才添加icons所用的文件夹,通俗的说,就是你刚才从哪儿添加一个图标进feature的,现在还是从哪儿添加的这个图标。
其实这一点我是一直很费解的,当初不知道要这么选择图标,随便从外面一个任意文件夹里添加了一个图标,以至于打包后死活找不到图标,后来经过试验才知道这个被选中的图标文件要拷贝进来,打包进安装文件才可以。
这一点上不能不提一下visualstudio,这个工具做安装程序虽然功能一般,但是思想还是不错的,当它的组件指定拷贝了图标文件后,在建立快捷方式时,快捷方式使用的图标是指向虚拟的安装目标路径下的图标文件的,而不是指定到这个实实在在的源文件夹。
这一点差别就体现出了思想上的差异。
如法炮制为每个Feature指定快捷方式,Document除外,因为我们在这个feature里除了图标文件外什么都没有添加。
至此我们为每个可执行程序添加了开始菜单下的快捷方式。
我们再切换去InstallationDesigner,找到SystemConfiguration|Shortcuts。
看到快捷方式在开始菜单中是以 公司名 | 软件名 | 快捷方式 这种形式存在的。
事实上我是不喜欢这种形式了,想想点开一层还有一层,不如直接了当来得干脆,因此做一些修改。
这里我改成了如下设置
不要告诉我你不会改,直接拖动Test文件夹往ProgramMenu(即开始菜单下的那个“所有程序”)下一塞即可,然后删除掉多余的CompanyName文件夹。
9.可能刚才在ProjectAssistant界面有人已经注意到了左边栏上MoreOptions下Createanuninstallationshortcut这个诱人的字样了。
可是我要告诉你,如果你选择了这种方式建立卸载快捷方式的话,你会很沮丧地发现:
a)似乎只有在安装某个feature的时候这个卸载快捷方式才会出现(当然,就是那个defaultfeature,这种要命的feature形式决定了每个文件或者快捷方式都必须明确地归属到某个feature下),因此,当你的客户只选择了其他feature安装时,这个卸载方式不会出现,而他必须去“添加或卸载程序”里面去卸载
b)如果你写脚本使得安装时会拷贝一些外部文件进来,那么这些文件在这种卸载方式下是删除不掉的。
(如果你确实想保存这些文件,你可以在脚本里设置它们属性为permanent,这个属性可以保证什么卸载方式都不能删除你的这些文件)。
所以这里我们忽视这个卸载快捷方式的存在,而将在后面采用脚本形式实现完美卸载。
10.点击引导条上的ApplicationRegistry
向注册表写键和键值,由于本工程不需要,忽略之。
有需要的朋友可以查阅相关资料,不难。
11.点击引导条上的InstallationLocation
这个是用来设置安装包的语言的,选择了多个语言后,用户可以在安装界面开始的时候选择安装时所用的语言;
不过作为一个公司产品来说,这么偷懒,客户的印象是要打折扣的,所以还是选个单语言吧,该什么语言的安装包就什么语言的安装包,各归各。
不过你又会沮丧地发现,如果要选择一种其他语言作为DefaultLanguage,好像又报错了。
这个问题当时折腾了我一个星期(当然那时候才接触Installshield,还一窍不通),最后问了技术支持才得以解决。
切换去InstallationDesigner,找到InstallationInformation|GeneralInformation,看到StringTables下面是什么?
对,所有你选的语言都列出来了,选中你要的语言,右键,选择MakeDefault,OK,再切换回ProjectAssistant去把所有不要的语言统统去掉钩选即可。
看到此处,已经变成了English为默认语言了。
12.点击引导条上的BuildInstallation。
打包安装盘的设置,本人从来不用这个选项,都用工具条上的ReleaseWizard。
至此,第一部分基本完成。
如果是一些没有特别要求的安装包,这部分讲解的内容足够可以做一个基本的安装包了
第二部分:
脚本编程
下面就是我的脚本的主要实现:
脚步主要包括六个部分,即六个事件处理过程:
OnBegin,OnEnd,OnFirstUIAfter,OnFirstUIBefore,OnMainUIAfter,OnUninstall这六个事件都是自动生成的,需要那些特殊的处理就这写事件里面写脚步就可以了。
onEnd和OnUninstall两个事件我没有用到,很奇怪的,卸载代码写在OnUninstall里面没有启作用,没有运行,所以我不得不写在OnMainUIAfter事件里面。
另外需要提示的是unistallshield自带的卸载快捷方式不好用,卸载不完全,所以必须写脚步才能卸载完全。
下面就是我做的具体的脚本:
1:
开始部分:
//===========================================================================
//
//FileName:
Setup.rul
//Description:
Blanksetupmainscriptfile
//Comments:
Blanksetupisanemptysetupproject.Ifyouwantto
//createanewprojectvia.step-bystepinstructionsusethe
//ProjectAssistant.
//Includedheaderfiles----------------------------------------------------
#include"
ifx.h"
//Note:
InordertohaveyourInstallScriptfunctionexecutedasacustom
//actionbytheWindowsInstaller,itmustbeprototypedasan
//entry-pointfunction.
//ThekeywordexportidentifiesMyFunction()asanentry-pointfunction.
//TheargumentitacceptsmustbeahandletotheInstallerdatabase.
/*exportprototypeMyFunction(HWND);
*/
functionOnBegin()
begin
Disable(BACKBUTTON);
//if(!
MAINTENANCE)then
//SdLicense2("
License"
"
"
SUPPORTDIR^"
许可协议.rtf"
FALSE);
//endif;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if(RegDBKeyExist("
SOFTWARE\\ORACLE"
)<
0)then
MessageBox("
请先安装Oracle"
SEVERE);
Exit;
endif;
end;
2OnFirstUIBefore事件部分:
//---------------------------------------------------------------------------
//OnFirstUIBefore
//TheOnFirstUIBeforeeventiscalledbytheframeworkwhenthesetupis
//runninginfirstinstallmode.BydefaultthiseventdisplaysUIallowing
//theendusertospecifyinstallationparameters.
functionOnFirstUIBefore()
NUMBERnResult,nSetupType,nvSize,nUser;
STRINGszTitle,szMsg,szQuestion,svName,svCompany,szFile;
STRINGszLicenseFile;
LISTlist,listStartCopy;
BOOLbCustom,bIgnore1,bIgnore2;
STRINGszDir,szTemp;
//TODO:
ifyouwanttoenablebackground,windowtitle,andcaptionbartitle
//SetTitle(@PRODUCT_NAME,24,WHITE);
//SetTitle(@PRODUCT_NAME,0,BACKGROUNDCAPTION);
//Enable(FULLWINDOWMODE);
//Enable(BACKGROUND);
//SetColor(BACKGROUND,RGB(0,128,128));
//AddedinInstallShield15-Showanappropriateerrormessageif
//-removeonlyisspecifiedandtheproductisnotinstalled.
if(REMOVEONLY)then
Disable(DIALOGCACHE);
szMsg=SdLoadString(IDS_IFX_ERROR_PRODUCT_NOT_INSTALLED_UNINST);
SdSubstituteProductInfo(szMsg);
MessageBox(szMsg,SEVERE);
abort;
endif;
nSetupType=TYPICAL;
Dlg_SdWelcome:
szTitle="
欢迎使用UWAY-OMDGB优化系统"
;
szMsg="
安装软件将在您的计算机中安装'
UWAY-OMDGB优化系统'
若要继续,请单击下一步"
nResult=SdWelcome(szTitle,szMsg);
if(nResult=BACK)gotoDlg_SdWelcome;
svName="
svCompany="
Dlg_SdRegisterUser:
请您填写用户信息"
欢迎您\b\n使用UWAY-OMDGB优化系统"
nResult=SdRegisterUser(szTitle,szMsg,svName,svCompany);
Dlg_SetupType:
安装类型\b\n请选择安装类型"
请选择安装"
nResult=SetupType2(szTitle,szMsg,"
nSetupType,0);
if(nResult=BACK)then
gotoDlg_SdRegisterUser;
else
nSetupType=nResult;
if(nSetupType!
=CUSTOM)then
nvSize=0;
FeatureCompareSizeRequired(MEDIA,INSTALLDIR,nvSize);
if(nvSize!
=0)then
MessageBox(szSdStr_NotEnoughSpace,WARNING);
gotoDlg_SetupType;
bCustom=FALSE;
gotoDlg_SQL;
else
bCustom=TRUE;
Dlg_SdAskDestPath:
nResult=SdAskDestPath(szTitle,szMsg,INSTALLDIR,0);
if(nResult=BACK)gotoDlg_SetupType;
Dlg_SdFeatureTree:
if(nSetupType=CUSTOM)then
nResult=SdFeatureTree(szTitle,szMsg,INSTALLDIR,"
2);
if(nResult=BACK)gotoDlg_SdAskDestPath;
Dlg_SQL:
nResult=OnSQLLogin(nResult);
if(nResult=BACK)then
if(!
bCustom)then
gotoDlg_SetupType;
gotoDlg_SdFeatureTree;
endif;
Dlg_SdStartCopy:
可以安装UWAY-OMDGB优化系统了\b\n安装准备工作已就绪,可以开始安装了。
szMsg="
//"
单击"
安装"
以开始安装。
\b\n如果要检查或更改任何安装设置,请单击"
上一步"
。
取消"
退出安装向导。
nResult=SdStartCopy2(szTitle,szMsg);
gotoDlg_SQL;
listStartCopy=ListCreate(STRINGLIST);
switch(nSetupType)
caseTYPICAL:
ListAddString(listS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- InstallShield 打包实例 打包 实例