使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0

原文:使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0

      目前采用Arcgis9.2 + c#(vs2008)作为程序开发平台,是一个不错的搭配。(虽然标准搭配是9.3+vs2008)但是到目前面临了一个很严重的问题,就是arcgis desktop的license到2011年11月11日到期,虽然ae的许可是无限期的,但是将影响arcmap软件编辑处理图形。无奈之下,需要尽快升级到arcgis10.0,这个版本目前有无限期的许可。

 

    目前开发的韶关水文分析系统的用户数量不止是几个,都要逐一对AE运行库进行升级。问题是,在各个现有的客户端上已经安装了AE9.2,需要一一卸载;而AE10的安装包很庞大,自身安装包大小451m,补丁sp2大小139m,加上License安装包(22.3M)及License 补丁SP2(13.4M),总共超过620M,而且部分计算机未安装.Net Framwork 3.5 SP1,这个安装包大小231M(真是微软的大手笔,那般爷们不知道怎么弄出来的),虽然网上有80M左右的简化安装包,但是那个安装包不能自动安装。

    利用国庆4天的值班时间,在无数次的测试后,终于使用Advanced Installer完成了Arcgis平台自动部署。下面分享一下我的做法与体会。

 

准备的脚本:

       1、卸载老版的Arcgis License Manager   

            编写脚本文件script_delete_license92_new.cmd,内容为

      1. @echo off
      2. rem 停止服务
        net stop "ArcGIS License Manager"
      3. rem 杀死进程arcgis
        taskkill /f /im arcgis.exe
      4. rem 删除服务
        sc delete "ArcGIS License Manager"
      5. rem 清除注册表项
        reg import deletelicense92.reg
      6. if exist "C:\Program Files\ESRI\License\arcgis9x\" rd "C:\Program Files\ESRI\License\arcgis9x" /S /Q
        if exist "C:\Documents and Settings\All Users\「开始」菜单\程序\ArcGIS\License Manager (9.x)" rd "C:\Documents and Settings\All Users\「开始」菜单\程序\ArcGIS\License Manager (9.x)" /S /Q

2、卸载老版的ArcGIS Engine Runtime

       利用msiexec命令行工具,自动卸载

       脚本:

       @msiexec /x {9B139B36-F1FF-4DB8-89F9-4DA3D5C12BE8} /qb

3、卸载9.2版本的Arcgis Desktop

脚本:msiexec /x {1F34839E-4826-4B64-B1B3-42E5AE8DEC5A} /qb  

4、安装.Net Framework 3.5 SP1

     脚本:MainPack\dotnetfx35sp1-zhcn.exe /q

5、安装ArcGIS License Manger 10.0

     脚本:@msiexec.exe /i "ArcGis License Manager\setup.msi" /qb

6、升级ArcGIS License Manager 10.0 至 SP2;

脚本:@msiexec /update "ServicePacks\ArcGISLicenseManager10sp2.msp" /qb

7、安装ArcGIS Engine Runtime 10.0;

脚本:@msiexec /i "ArcGIS Engine Runtime\setup.msi"  /qb

8、升级ArcGIS Engine Runtime 10.0至SP2;

脚本:@msiexec /update "ServicePacks\ArcGISEngine10sp2.msp" /qb

9、安装许可证。

    1. rem "正在停止ArcGIS License Manager 服务..."
      net stop "ArcGIS License Manager"
    2. rem "复制ArcGIS License Manager许可文件..."
      copy service.txt "C:\Program Files\ArcGIS\License10.0\bin\service.txt" /Y
      rem "复制成功!"
    3. REM "重启ArcGIS License Manager 服务"
      net start "ArcGIS License Manager"
      rem "搞定!"
    4. pause

  

  Advanced Installer配置(7.01企业版授权)

    运行环境->启动条件,去掉windows 9x,windows NT自 “Windows XP 服务包3”,Windows NT 64位自 “Windows XP 64位”;(以下有类似选项同此设置)

    运行环境->软件环境,添加如下项目:

 

 逐项详细配置:

第一项:卸载ArcGIS License Manager

    属性:位置:程序包中的文件;文件路径:D:\打包测试\script_delete_license92.cmd;文件夹:Script

    安装条件:搜索 :有指定内容的注册表项,注册表值:HKLM\SOFTWARE\FLEXlm License Manager\ArcGIS License Manager\Lmgrd,

                                    值:C:\Program Files\ESRI\License\arcgis9x\lmgrd.exe,比较:不同于;

           选项:不设置;

           文件:添加脚本文件

          如图:

第二项:卸载ArcGIS Engine Runtime 9.2

    属性:位置:程序包中的文件;文件路径:D:\打包测试\script_delete_arcengine92.cmd;文件夹:Script

    安装条件:搜索 :注册表项不存在,注册表值:HKLM\SOFTWARE\ESRI\ArcGIS Engine Runtime;

           选项:不设置;

           文件:添加脚本文件        

 

第三项:卸载Arcgis Desktop 9.2 

    属性:位置:程序包中的文件;文件路径:D:\打包测试\script_delete_arcgis92.cmd;文件夹:Script

    安装条件:搜索 :有指定内容的注册表项,注册表值:HKLM\SOFTWARE\ESRI\ArcInfo\Desktop\8.0\RealVersion,

                                    值:9.2,比较:不同于;

           选项:不设置;

           文件:添加脚本文件

         

第四项:安装 .NET Framework 3.5 SP1 属性:位置:程序包中的文件;文件路径:D:\打包测试\MainPack\dotnetfx35sp1-zhcn.exe;命令行:/q;文件夹:dotNet3.5sp1

    安装条件:搜索 :有指定内容的注册表项,注册表值:HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\SP,

                                    值:1,比较:精确匹配;

           选项:不设置;

           文件:添加 dotnetfx35sp1-zhcn.exe(官方原版)

         

第五项:安装 ArcGIS License Manager 10.0 ;

    属性:位置:程序包中的文件;文件路径:D:\打包测试\ArcGis License Manager\setup.msi;命令行:/qb;

      文件夹:ArcGIS License Manager 10.0

    安装条件:搜索 :注册表项存在,注册表值:HKLM\SOFTWARE\ESRI\ArcGIS License Manager 10.0,

    选项:不设置;

           文件:添加安装文件夹下所有文件(含子文件夹)

 

第六项:更新 ArcGIS License Manager10 至 sp2

    属性:位置:程序包中的文件;文件路径:D:\打包测试\ServicePacks\ArcGISLicenseManager10sp2.msp;命令行:/qb;文件夹:ServicePack

    安装条件:搜索 :有指定内容的注册表项,注册表值:HKLM\SOFTWARE\ESRI\ArcGIS License Manager 10.0\RealVersion,

                                    值:10.0.3200,比较:精确匹配;

           选项:父环境:安装 ArcGIS License Manager 10.0

           文件:添加ArcGISLicenseManager10sp2.msp;

 

第七项:安装 ArcGIS Engine Runtime 10.0

    属性:位置:程序包中的文件;文件路径:D:\打包测试\ArcGIS Engine Runtime\setup.msi;命令行:/qb;文件夹:ArcGIS Engine Runtime 10.0

    安装条件:  搜索1 :注册表项存在,注册表值:HKLM\SOFTWARE\ESRI\Engine10.0;

          搜索2 :注册表项存在,注册表值:HKLM\SOFTWARE\ESRI\Engine10.0\.NET_Support;

           选项:不设置;

           文件:添加文件

         

第八项:更新 ArcGIS Engine Runtime 10 至 sp2

    属性:位置:程序包中的文件;文件路径:D:\打包测试\ServicePacks\ArcGISEngine10sp2.msp;命令行:/qb;文件夹:ServicePack

    安装条件:搜索1 :注册表项存在,注册表值:HKLM\SOFTWARE\ESRI\Engine10.0;

         搜索2 :有指定内容的注册表项;注册表值:HKLM\SOFTWARE\ESRI\Engine10.0\SPNumber;值1;比较:大于;

           选项:父环境:安装 ArcGIS Engine Runtime 10.0 

           文件:添加ArcGISEngine10sp2.msp

         

将安装许可证的脚本script_add_license10.cmd 与 许可证文件 放于 “文件和文件夹”,并在“应用程序快捷方式文件夹 ”中建立快捷方式到脚本文件。

引导程序创建exe安装文件,为了便于分发,exe文件中包括安装文件。

 

这样,就生成了真正的ArcGIS平台自动部署软件。

 

体会:Advanced Installer功能强大,但是比较傻瓜式,部分应该具有的功能不足,如在运行环境条件判断中缺少文件是否存在的判断,判断条件只能选择失败,造成一些逻辑判断比较复杂(当对非再非,再来一个失败,又加上当满足一个或同时满足多个条件,只好拿笔来画一下,还好脑子还算够用)。命令行中调用cmd缺少unc支持,从网络运行时可能会出错。

 

从ArcGIS9.2平台升级到10.0,改程序花了一天多时间,不过后来才发现其实没什么太大的问题,基本代码不需要改动,主要是和office的兼容问题。有空再把那个发上来分享^-^。

 

运行效果:

 

 

软件运行效果图

 

     

 

时间: 2024-10-02 00:08:36

使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0的相关文章

engine-无法绑定到ArcGIS Engine runtime

问题描述 无法绑定到ArcGIS Engine runtime "Failed to bind to an ArcGIS Engine runtime. Ensure that the specified runtime is installed before running this application." 我是新手请大家多多指教,这个问题怎么解决?谢谢!

用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解

原文:用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解                  关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版---------------------------------------------------------     基于 官方原版的安装包 +

使用 ArcGIS Engine Runtime 制作安装包

问题描述 怎么判断目标机器装了ArcGISEngineRuntime,版本是9.3"SOFTWARE\ESRI\ArcGISEngineRuntime"这个注册表已经装了Runtime的机器上依然不存在另外能获取Runtime的安装目录么打包程序用的是installshield2010 解决方案 解决方案二:补充一点xp下可以在注册表找到但是win7下却找不到解决方案三:我晕没有人回么

ArcObjects与ArcGIS Engine

1.ArcObjects 在ArcGIS系列产品中,ArcGIS Desktop.ArcGIS Engine和ArcGIS Server都是基于核心组件库ArcObjects搭建的. 所谓ArcObjects,现在一般都是指ArcGIS Desktop版本的组件开发集,即需要安装ArcGIS桌面版软件后才能安装这些组件开发集,它是所有版本中组件最全的版本. ArcObjects组件库有3000多个对象可供开发人员调用,为开发人员集成了大量的GIS功能,可以快速的帮助开发人员进行GIS项目的开发.

ArcGIS Engine开发之旅01---产品组成、逻辑体系结构

原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构   ArcGIS Engine 由两个产品组成:  面向开发人员的软件开发包(ArcGIS Engine Developer kit) 面向最终用户的运行时(ArcGIS Engine Runtime)ArcGIS Engine 开发工具包是一个基于组件的软件开发产品,可用于构建自定义GIS 和制图应用软件.它并不是一个终端用户产品,而是软件开发人员的工具包,支持四种开发环境(C++, COM, .NET,以及Java

Advanced Installer 制作.NetWeb部署安装包

原文:Advanced Installer 制作.NetWeb部署安装包 因为是.Net的Web应用程序,所以想用Advanced Installer 调用Dll实现安装部署. 因为我需要自己定制参数,包括数据库服务器和数据库名称等,我需要建立一个企业版的项目工程.  建立完毕,产品参数设置好了之后,就转到[用户界面]->[对话框]. 在[首次安装]目录下新建一个对话框:   [图1.1] 编辑对话框,如[图1.1],我在这里将数据库服务器文本框属性名设置为:DBSERVERNAME    如[

ArcGIS Engine开发入门教程

利用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 Dixon整理 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法和步骤. 你可以在下面的目录下找到相应的样例程序: <安装目录>/DeveloperKit/Samples/Developer_Guide_Scenarios/ ArcGIS_Engine/Building_an_ArcGIS_Control_Application/Map_Viewer 注:Ar

利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用

原文:利用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法和步骤. 你可以在下面的目录下找到相应的样例程序: <安装目录>\DeveloperKit\Samples\Developer_Guide_Scenarios\ ArcGIS_Engine\Building_an_ArcGIS_Control_Application\Map_Viewer 注:ArcGIS样

ArcGIS Engine开发之旅04---ARCGIS接口详细说明

原文:ArcGIS Engine开发之旅04---ARCGIS接口详细说明 ArcGIS接口详细说明... 1 1.      IField接口(esriGeoDatabase)... 2 2.      IFieldEdit接口(esriGeoDatabase)... 2 3.      IFields接口(esriGeoDatabase)... 2 4. IRow接口(esriGeoDatabase)... 3 5. ITable接口(esriGeoDatabase)... 3 6. IAr