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的兼容问题。有空再把那个发上来分享^-^。

    运行效果:

    软件运行效果图

         

  • 相关阅读:
    2.12 使用@DataProvider
    2.11 webdriver中使用 FileUtils ()
    Xcode8 添加PCH文件
    The app icon set "AppIcon" has an unassigned child告警
    Launch Image
    iOS App图标和启动画面尺寸
    iPhone屏幕尺寸、分辨率及适配
    Xcode下载失败 使用已购项目页面再试一次
    could not find developer disk image
    NSDate与 NSString 、long long类型的相互转化
  • 原文地址:https://www.cnblogs.com/imzdh/p/2200043.html
Copyright © 2011-2022 走看看