zoukankan      html  css  js  c++  java
  • 使用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的兼容问题。有空再把那个发上来分享^-^。

    运行效果:

  • 相关阅读:
    NGINX高并发配置
    一致性哈希算法——PHP实现代码
    TCP三次握手详解
    一致性哈希算法——转载来自张洋
    ngx_http_upstream_keepalive
    高情商人的十一种表现
    Nginx中的upstream轮询机制介绍
    主从读写分离----mysql-proxy0.8.5安装与配置
    分布式事务XA
    微信小程序API
  • 原文地址:https://www.cnblogs.com/curtful/p/2387552.html
Copyright © 2011-2022 走看看