软件打包总结

来源:互联网 发布:俯卧撑 知乎 编辑:程序博客网 时间:2024/06/11 23:28

软件打包总结

最近,参与了一个CS的项目,软件开发完了,在通过简单的基本测试后,需要将CS工程文件打包,部署在客户机上进行测试,项目组就把这个任务交给我了,但这种事情以前都没有干过,拿到手时,不知从何下手,在查阅相关资料后,理清整个流程,最终完成了这个任务,下面具体的总结:

一、搭建客户机环境

因为要保证成品软件是否能很好的在客户机部署,所以,要你的软件能够检测客户机配置环境,在这里,根据项目要求,本软件最总要部署到win7上,所以,这里只需要有一个安装win7的电脑就可以了,其他的环境,要根据安装软件的提示,在做下一步打算。当然客户机的环境搭建,还是在自己工作的电脑上安装一个虚拟机,选择虚拟机的好处有很多:

1. 成本,公司不需要再给你配置另外的电脑进行测试的工作等等,这里面有很多哈,就不细说了

2. 也是最主要的,也是我想说的,大家都知道虚拟机都有一个快照的功能,可以很快的将当前系统的状态保存起来,跟系统本分类似,我们可以创建多个快照,在测试中,可根据需要,快速的转到相应的快照,速度很快,不超过一分钟,总比你在那里安装卸载快了不知多少倍,下图是我在测试过程中创建的快照。

  

1.1

可以说,对于一般小公司而言,软件测试中,虚拟机是必不可少的

二、打包前要做的事情

将开发的工程目录下bin(不一定是,根据自己的情况而定)文件夹下所有的文件拷贝到虚拟机中,找到项目可执行文件(XX.exe,双击它,我们发现不能运行,但是我们在开发环境中,双击它,有是可以的。这是为什么呢?下面我们来具体分析它:

1. 缺少软件运行的必要环境:如软件运行的.net framework 框架为4.0,而客户机为.net framework 3.5。还比如,我自己的项目,还必须客户机安装了ArcGIS Runtime等等,根据自己的情况而定。我们在虚拟将软件运行所需的环境都配置完成后,再一次双击可执行文件(XX.exe),发现,还是不能成功运行,这又为何?

2. 确定软件所有必须的DLLbin目录下只是一部分的dll,它只能在开发环境下运行。确认软件所需的dll,是软件打包中一个重要的点。我是这样认为。比如用了Dev控件、ArcObjects SDK等等,他们都有很多DLL,我们不可能将所有的DLL都拷贝进去吧,也不可能一个个的去试,具体方法,后面再说。我们需要的dll拷贝到bin目录下。

在经过上面两个步骤后,我们再次双击可执行文件(XX.exe),发现,是可以成功运行的了。

三、打包

前面说了那么多,于可以打包了,呵呵!

我采用的打包软件为Setup Factory,对于Setup Factory的用法,这里就不具体的说了,在制作打包文件的过程中,你要明白那些东西是必选要先安装的,那些东西是运行环境所必需的,这些通过第二章,已经可以确定。下面就按照这个步骤,写一个脚本语言,让它自动执行,就可以了。

下面就我做的这个例子,具体说明,见下图:

1. 我们将要打包的项目里面的所有DLL,以及配置文件,软件所需运行环境的EXE文件,统统导入到打包软件中。

 

3.1

2. 在下一步,就是编写脚本语言了,对于安装界面它分为安装之前、安装之时、安装之后,对于操作,它分为启动安装、预览安装、安装错误、安装之后、关闭操作等

 

3.2

比如,我这个,在安装之前,需要检测客户机是否安装了.net framwork 4.0,如果没有,就要提示用户,必需先安装它,否则,安装不能继续。需要设置它的依赖关系。

                         

3.3

安装前的工作完成后,就开始安装,当然这个过程,没法认为的干预,它相当于解压的过程,在你选择了安装路径之后,就自动解压到你选择的目录,只能在它安装完成后,才能人为的继续进行相关操作。

4.做到这一步,我们打包好的软件,只可以在客户机上安装,但是还不能运行,需要我进一步处理,还是以我的项目为例,我的项目打包进行到这一步时,需要检测客户机上是否安装了ArcGIS Runtime,没有安装,则要提示用户,必选安装,否则软件不能正常使用,当然,也可以在本软件安装完后,用户自行安装ArcGIS Runtime,具体的设置及脚本见下图:

 

3.4

 

3.5

另一方面,项目引用的某一些DLL,需要注册,但是,要注册这个DLL,它又需要某些环境,这种情况,是打包过程中最复杂的情况了,比如,我打包的过程中需要给Super3DObject2.ocx注册,而要注册它,需要电脑上必须安装了vc++_x86_2005.exe,因此,你需要在操作步骤的安装之后,写下相关的脚本语言,如下图

 

3.6

所有工作完成后,就可以创建自己的Setup.exe了。

四、总结

说了这么多,其实就两点很重要:

1.确定必须的dll

2.知道软件运行的环境,及先后顺序。

 

 


0 0