打包:独立运行的基于Arcgis Engine的应用程序(上)


一、知识基础: 1.打包软件的基础知识 (1)软件打包   使用封装软件或工具,对完成开发的应用进行封装处理,提供应用在运行时所需的元素,打包生成可向用户分发的安装包。这里说的是“元素”,而不是“文件”,是因为很多软件包含的内容远不止软件运行时所需要的文件,还有注册表信息和其他一些东西。 (2)什么是注册表?   注册表(英语:Registry,中国大陆译作注册表,台湾、港、澳译作登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。   使用注册表的动机通常是:保存一些在程序多次运行之间需要保留的信息,以及让软件可以通过某种特定方式(例如,右键菜单)启动。 (3)Windows Installer   Windows Installer 是 Windows 操作系统的组件,是Windows 一种系统服务,用来安装和管理系统中的应用程序,简化应用程序的安装过程,为应用程序的开发、定制、安装和升级提供了一种标准化的方法和手段。   当前Windows Installer最新版本为5.0版。输入msiexec /? 到Windows 运行对话框或命令提示符中,可以获知当前计算机Windows Installer的版本信息。 (4)msiexec.exe 1)位置   一般位于:C:\Windows\System32\msiexec.exe 2)用途   命令行方式执行程序安装,用于安装Windows Installer安装包(MSI) 3)常见参数   下表说明了一些可用的msiexec.exe命令行参数: (5)软件打包工具      软件封包工具很多,目前常用的专业软件有:Inno?Setup;NullSoft?Installation?System;InstallShield?with?MSI;WINRAR;7Z等等。甚至在一个纯净的原版系统下,使用微软的makecab命令行,照样可以生成一个安装包。       其中,InstallShield?with?MSI被大部分国外商业软件使用,因为其功能强大(其体积也比较强大),可定制性强,其生成的安装包默认为.msi格式,为微软支持的安装包格式,理论上比其他安装包格式兼容性,稳定性也更加好。?       国内以及国外小型软件一般多使用NullSoft?Installation?System(简称NSIS),NSIS使用C语言构建,采用可视化视图构建安装程序,功能强大,体积小巧,扩展性很强。       Inno?Setup也被国内以及国外很多软件使用,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,其官方网站同时也提供源程序免费下载。      WINRAR,流行好用的压缩软件,目前使用最广的压缩软件。支持多种格式,可以生成自解压格式的软件,可用于普通软件包的制作。通过修改自解压模块,可以制作出很漂亮强大的安装程序。   2.打包Arcgis Engine的基础知识 (1)ArcGIS Engine的组成   ArcGIS Engine由一个软件开发人员工具包和一个可重新分发的运行时组成,为所有ArcGIS应用程序提供了平台。 (2)具有许可证方可执行   使用"ArcGIS Engine开发人员工具包"构建的所有应用程序,都需要具有适当许可证的"ArcGIS Engine运行时"才能成功执行。 (3)ArcGIS Desktop的用户可以执行   ArcGIS Desktop构建于"ArcGIS Engine运行时"之上。因此,在开发者允许下,ArcGIS Desktop的用户可以执行基于ArcGIS Engine的应用程序。 (4)ArcGIS Engine运行时部署选项   部分选项用于决定部署ArcGIS Engine的哪些功能。   arcgis engine runtime有两个不同的部署选项,分别是"Standard ArcGIS Engine functionality"和"Geodatabase Update extension"。这两个选项对应不同的功能可用性。   Standard ArcGIS Engine functionality:标准ArcGIS Engine功能。提供了所有ArcGIS应用程序的核心功能,允许基本数据创建,shapefile和简单的个人地理数据库的编辑以及GIS分析。   Geodatabase Update extension:地理数据库更新扩展。在标准功能的基础上,增加了创建和更新由ArcSDE管理的多用户企业地理数据库的功能。提供了以编程方式创建地理数据库行为(例如拓扑,子类型和几何网络)的功能。   部署完成后,需要授权。   不同级别功能的可用性由软件授权文件控制,该文件可以由最终用户或应用程序开发人员配置。即ArcGIS Engine的授权文件(*.prvc)控制用户可以使用哪些功能,ArcGIS Engine的功能是否可用需要根据授权文件而定。授权完成后,可以在ArcGIS Administrator里查看该机器上具有哪些许可。   arcgis engine runtime还有多个额外的功能扩展,分别是: Spatial extension、 3D extension、 Network Analyst extension、 Maplex extension(Maplex扩展)、 Tracking extension(跟踪扩展)、 Schematics(逻辑示意图)、 Data Interoperability extension(数据互操作性扩展)等。 (5)开发与否   如果是开发人员,需要安装ArcObjects SDK或ArcGIS Engine;如果是最终用户,也就是只运行基于ArcGIS Engine开发的程序,不开发,则只需要安装ArcGIS Engine(运行时)即可。原则上在安装 ArcObjects SDK或ArcGIS Engine这两个之前,要先安装ArcGIS License Manager。如果已经安装过ArcGIS Desktop,并且已授权,则不需要重新安装ArcGIS License Manager。 (6)ArcGIS Engine运行时命令行参数 1)ArcGIS Engine运行时Setup的安装功能(installation feature):   可用安装功能(installation feature)由ADDLOCAL参数指定。 2)可直接用于命令行或在脚本上的参数,以执行ArcGIS Engine运行时MSI。  一些示例: 典型安装+无用户界面+非默认位置: msiexec.exe /i <安装位置>\setup.msi /qn InstallDir=C:\Mysetup 典型安装+具有基本用户界面(进度条)+非默认安装位置: msiexec.exe /i <安装位置>\setup.msi /qb InstallDir=C:\Mysetup 完全安装+无用户界面+默认安装位置: msiexec.exe /i <安装位置>\setup.msi /qn ADDLOCAL =ALL 自定义安装+无用户界面的+默认安装位置+指定功能: msiexec.exe /i <安装位置>\setup.msi /qn ADDLOCAL = ArcEngine,DotNetRuntime ArcGIS Engine具有以下安装功能(installation feature):ArcEngine,DotNetRuntime, JavaRuntime, Python (7)静默安装 1)可将ArcGIS Engine运行时的"setup"合并到自己的基于ArcGIS Engine开发的应用程序的安装程序中。 这是可行的,因为可以通过使用Windows Installer命令行参数运行安装程序,而无需图形用户界面来安装ArcGIS Engine运行时。 此过程需利用.msi文件和客户端安装程序服务(msiexec.exe)命令行参数。 2)命令行参数可通过以下三种方式将ArcGIS Engine运行时的"setup"包含在应用程序的"setup"中:
  • 在基于MSI的安装结束时:基于Arcgis Engine的程序安装完成,点击完成按钮后,启动ArcGIS Engine运行时安装程序。
  • 在脚本化的 "setup"中
  • 在批处理文件中
(8)安装包获取