一个简单的CS系统打包过程图文版
一个简单的CS系统打包过程图文版
1. 打包内容
1.1. 此次打包的要求和特点
- 主工程是一个CS系统;
- 此CS系统运行的先决条件是要有.Net Framework 3.5;
- 主工程安装完成后自动安装系统运行的平台许可管理工具;
- 开始安装时显示许可协议。
1.1. 打包过程流程图
2. 打包软件
2.1. 选择软件
此次打包选择大名鼎鼎的打包软件Installshield。
2.2. 关于版本
- 在网上查了些关于Installshield版本的问题,主要是因为遇到我用的Installshield不支持中文,这个可不是一般的烦人,哪有软件包括的所有文件图片都只是英文和拼音啊,汗!
- 说,Installshield分Professional和Premier版本。到底是不是两个版本都支持中文,在网上查了资料,说法不一,本人没再深究,汗。
- 反正就是,我之前用了一个Installshield 12 Professional Edition不支持中文,那个没用啊;后来找了一个InstallShield 2010 Premier Edition,这回才开始正儿八经的打包中……
3. 打包过程
3.1. 基本打包——打包CS系统
所谓基本的打包过程,就是如果先决环境的.Net 3.5和系统运行需要的许可管理工具都自行另外安装的话,就只需要打包CS系统主工程。这也是此次打包目的安装包的核心系统,遂先实现核心系统的打包。
3.1.1. Create a new project
1. 首先启动 ,然后
2. 新建一个工程
- 新建InstallScript MSI Project类型的工程,如图啥也不说了:
- 上一步完成之后,自动换到Project Assistant选项卡,我们按下面显示条上的顺序实现基本打包过程。
3.1.2. Application Information
1. 点击如上图工具条上的 ,
2. 出现以下界面
3. 此处,具体怎么填写,填写的内容会有什么影响,以及为什么要填写,本人均无深究,只参考前人大神海洋女神的博文招办后如下,或君能效仿之:
(http://www.cnblogs.com/Cindy_weiwei/archive/2009/05/18/1459542.html)
4.继续
3.1.3. Installation Requirement
1. 点击
2. 出现以下界面:
3. 貌似,此页是选择软件安装的先决条件的,若在下面先决软件中选择yes,则可以找到.net Framework 3.5,但是安装.net Framework 3.5并不是只选这一步如此简单。此页暂默认,不设任何先决条件,均选No。.net Framework 3.5的安装稍候叙。
3.1.4. Installation Architecture
1. 点击
2. 出现以下界面,此处定义安装软件时显示的组件结构的;
3. 刚用此软件的我觉得很头大,不知道这是管什么用的。君是否曾见CAD、ArcGIS等庞大软件安装的过程中,出现一系列组件,可以自定义是否安装哪个的。组件有几个,安装过程中显示什么名字就在这里定义,当然我不知道那些个大名鼎鼎的软件具体是如何打包的啊。
4. 此处,本例中,核心的打包工程就是一个,所以最初偷懒此步默认未修改,但是后来发现,若不修改,打包后安装过程中,若选择了“定制”而不是默认安装的话,就会有一个叫“DefaultFeature”的组件出现在用户眼前,让人不知所云,故还是把这个DefaultFeature改了一下名字“主工程”。若君有若干个Feature需要添加,请参考大神们的作品。
5. 继续
3.1.5. Application Files
1. 点击 ,出现以下界面
2. 在这一步添加,要打包的文件和文件夹。
- 左边树状结构表示安装的路径,此处文件夹名字对应第一步Application Information中的公司名字和应用程序名称;如果不想把应用程序装在公司名称文件夹下,在此处直接拖放到Program Files下。
- 用右边的Add Files和Add Folders添加要打包的文件和文件夹。(友情提示:文件和文件夹都可以直接从电脑中拖入。此功能虽小,但在没有发现之前可不是一般的烦人,如果文件夹众多每次要打开一层又一层的目录的说。)
- 具体在添加文件和文件夹的过程中要进行的选择的可能会出现的问题,得视情况解决了。此处不能尽详述。我在添加文件的过程中需要如下图的错误。实践检验选择“否”就可以了,若选择了“是”在打包编译的过程中就会出问题。具体原因不详。
3. 添加文件和文件夹后如下图,若有不止一个Feature则要注意上面下拉框选择的feature与下面添加的文件夹对应,本例中不涉及:
4. 继续
3.1.6. Application Shortcuts
1. 点击 ,出现如下界面
2. 这是因为.exe的文件会被自动识别来创建快键方式。本例中,只需为其中一个exe创建快捷方式,
- 遂在这里删掉其他的exe
- 并为保留的exe重命名(此处什么名字创建出的快捷方式就是什么名字)
- 为exe的快捷方式选择一个.ico图标(此处选择的是上一步添加文件夹中的文件。)
3. 快捷方式的位置调整在Install Designer中进行,如下图,本例中默认不做修改;同样,如果不喜欢公司名称那一层的话可以删掉处理。
4. Application Registry在此例中没有用到,不叙。继续。
3.1.7. Installation Localization
1. 点击
2. 在此步为安装程序选择语言,我是要选择简体中文的。但是之前用那个professional版本确实不给力,什么语言都显示不出来除了English。正常的在左边的框里,应该显示很多种语言,如下图。
3. 至此,本例中的核心系统已经设置完成,可以进行打包了。
3.1.8. Build Installation
1. 点击
2. 如果想要让打包的文件浓缩到一个exe文件中的话就选择Single Executable如下图(之前本人不会弄,没有选这一项,发现打包后还是一堆复制过来的文件和文件夹,其貌万分拖沓。)
3. 进行打包之前可以为安装程序选择一下外观皮肤,如下图。在Installation Designer中找到User Interface下的Dialogue,然后再中间导航树中找到Skin,点击Select按钮即可选择安装程序的外观。
4. 设置完成之后对工程进行下编译Compile,点击工具条中的编译按钮;
5. 点击工具条上的Release Wizard按钮;
- 第一步弹出界面如下图,点击下一步:
- 第二步和第三步,是为生成的打包文件选择路径,测试几次就知道这个选项不同了;
- 第四步,本例中默认
- 第五步,显示打包文件的语言,本例中为中文简体
- 第六步,本例中选择CD-ROM,其他的选项都在什么情况下用,本人不懂。
- 第七步,默认
- 第八步,本例中选择Compress all files,把所有文件压缩到一起的意思。其他也没有深究。
- 此后默认直到完成。
6. 可爱的Installshield软件将为我们打包,请耐心等候。
7. 出现如下提示,即打包完成
8. 在工程文件的目录下找到打包的成果:路径前面为工程的存放目录,后面为在工程中打包成果的存放目录“\工程名\Product Configuration 1\Release 1\DiskImages\DISK1”。DISK1文件夹下的文件就是用提供给用户安装程序用的打包文件:
9. 基本打包完。
3.2. 判断打包先决环境——.Net Framework 3.5
1. 在基本打包工程的基础上进行;
2. 修改Installation Requirement中的先决条件,应用程序中选择.net 3.5 sp1(这里到底是需要什么先决条件,视实际情况);
- 点击 ;
- 修改后如下界面:
- 若只做此修改,程序在安装时,若电脑环境中没有.net 3.5 sp1则安装在提示后即自动退出(亲可以自己测试一下)。而我要达到的目的是环境中若没有.net 3.5,则给它安装上。遂还要进行以下步骤。
3. 把.net 3.5 sp1下载到本地:
- 在Installation Designer选项卡中,
- 找到Application Data下面的Redistribute,
- 然后,在右面找到.net 3.5 sp1,勾选上,右键选择Dowload Selected Item,等待下载完成。图示中的此菜单显示灰色是因为我已经下载过了。
- 下载完成后可以看到,.net 3.5 sp1这一条后面变成了Installed Locally。
- 此步整体截图如下:
4. 重新编译并打包,具体步骤同3.1.8所述。
- 编译打包之前,有一个参数需要设置一下。还是在Installation Designer选项卡下,找到Media下的Releases,
- 在中间的导航树中,将要打包到哪个路径下就设置哪个Release。本例中是Product Configure 1下的Release 1,
- 然后,在右边出现的对话框里点击Setup.exe,在最后一行InstallShield Prerequisites Location中后显示的是“Copy From Source Media”
- 这里要说的参数就是这个InstallShield Prerequisites Location,
5.若选择Copy From Source Media,打包后上步下载到本地的.net 3.5 sp1就会复制到打包后的文件中,存放在一个ISSetupprerequisite文件夹中;选择Copy From Source Media打包后的安装程序:
6.若此参数修改为Eatract From Setup.exe,.net 3.5 sp1就会被打包在最终生成的Setup.exe中,看上去和基本打包生成的文件没有区别,只是文件大小改变了。
7.选择Eatract From Setup.exe打包后的安装程序:
3.3. 打包系统自动安装许可管理工具
1.在上一步的工程基础上修改;
2.在Installation Designer选项卡下找到Behavior and Logic下的InstallScript,
3.在中间的导航树上找到Setup.Rul,
4.在右边上面的下拉框中选择After Move Data和OnFirstUIAfter(记得一定要动手选择一下),
5.在下面的脚本代码中出现OnFirstUIAfter函数:
6.在OnFirstUIAfter函数中加入“LaunchAppAndWait (INSTALLDIR^"许可管理工具\\EarthView许可管理工具.exe","", LAAW_OPTION_WAIT);”(当然如果您有很好的研究精神和严谨态度的话,可以把这句话写的更完美点,加上判断文件是否存在等前提。本例这里就此一句了。)
7.此句加在After Move Data,OnFirstUIAfter下是因为本例中想让主工程的文件复制完成之后启动EarthView许可管理工具.exe自动安装,然后结束整个安装过程。具体要自动启动的exe程序加在哪个函数下按实际设计要求来定。
8.此句中exe文件的路径为INSTALLDIR^"许可管理工具\\EarthView许可管理工具.exe",是因为此exe文件在安装目录(“INSTALLDIR”)许可管理工具文件夹下:
3.4. 添加显示安装协议
1. 此节在上一节工程的基础上进行;
2.此节完全是前人的赘述,大神们早已总结过:
http://www.cnblogs.com/Cindy_weiwei/archive/2009/05/19/1460232.html
3.在Installation Designer选项卡下找到Behavior and Logic下的Support Files/Billboards;
4. 在中间导航器中点击Language Independent;
5. 在右面空白处右键点击Insert Files,
6.添加已准备好的安装协议文件,
7. 然后,找到上一节中的Setup.Rul,选择Before Move Data和OnBegin,因为是在安装程序之前显示协议的,
8. 在OnBegin函数中插入代码,如下图所示(大神的博文中有文字版的代码):
9. 最终打包后的安装文件如下图:
4. 安装过程
双击setup.exe开始安装。