使用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,内容为
- @echo off
- rem 停止服务
net stop "ArcGIS License Manager" - rem 杀死进程arcgis
taskkill /f /im arcgis.exe - rem 删除服务
sc delete "ArcGIS License Manager" - rem 清除注册表项
reg import deletelicense92.reg - 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、安装许可证。
- rem "正在停止ArcGIS License Manager 服务..."
net stop "ArcGIS License Manager" - rem "复制ArcGIS License Manager许可文件..."
copy service.txt "C:\Program Files\ArcGIS\License10.0\bin\service.txt" /Y
rem "复制成功!" - REM "重启ArcGIS License Manager 服务"
net start "ArcGIS License Manager"
rem "搞定!" - 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的兼容问题。有空再把那个发上来分享^-^。
运行效果:
软件运行效果图
使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0的更多相关文章
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- ArcGIS 10 Engine DevelopKit 之安装与帮助;VBA,跨平台CPP,JAVA,ArcGIS Engine DevelopKit 10 的帮助如何打开
你看到的这个文章来自于http://www.cnblogs.com/ayanmw ArcGIS Engine Developer Kit10 可以从VeryCD上下载到.其不需要破解,只需要你有一个已 ...
- J2EE(java)后台调用ArcGIS Engine(AE)的部署和代码
arcgis的BS开发解决方案一直是个坑,主推的地图服务查询速度慢,需要异步,功能少.相对来说主要用于CS的AE功能更强大全面,只是部署有点复杂 本文软件环境: win7 sp1 64位 MyEcli ...
- 安装ArcGIS Engine 9.3
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217003.html 准备: ArcGIS Engine 9.3.crack_for ...
- ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成: 面向开发人员的软件开发包(ArcGIS Engine Developer k ...
- vs2012 arcgis engine 10 丢失arcgis模板
1.Visual Studio 2012环境下安装ArcGIS Engine 10 Visual Studio 2012环境下安装ArcObject SDK for the Microsoft .Ne ...
- 【149】ArcGIS Desktop 10.0 & Engine 10.0 安装及破解
写在前面:可能会出现按照此方法无法破解的情况,那请确保您有将 ArcGIS 10.0 已经完全卸载干净,直接通过控制面板进行卸载的时候并不能将其卸载干净,需要进行更深层次的卸载,包括删除注册表,各种文 ...
- 使用Advanced Installer打包工具如何设置是否安装预安装程序包
要保证我们的程序能在目标机器上正常运行,便需要保证目标机器上提供了程序运行的必要组件. 而在使用Advanced Installer打包工具制作程序安装包时,我们可以通过配置“需求-运行环境-程序包- ...
- Advanced Installer 制作.NetWeb部署安装包
原文:Advanced Installer 制作.NetWeb部署安装包 因为是.Net的Web应用程序,所以想用Advanced Installer 调用Dll实现安装部署. 因为我需要自己定制参数 ...
随机推荐
- 项目架构mvc+webapi
mvc+webapi 项目架构 首先项目是mvc5+webapi2.0+orm-dapper+ef codefirst. 1.项目框架层次结构: 这个mvc项目根据不同的业务和功能进行不同的区域划分, ...
- C#访问MySQL数据库(winform+EF)
原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...
- Windows下一个JSP环境配置
一.首先安装JDK 门户: http://write.blog.csdn.net/postedit/39999433 二.安装Myeclipse 事实上也能够安装eclipse然后再安装Myeclip ...
- Ubuntu下超实用的命令
1. Ubuntu中查看已安装软件包的方法 sudodpkg -l 2. ubuntu系统如何查看软件安装的位置 dpkg-L软件名 实例: wwx@ubuntu:~$dpkg -L mysql-se ...
- C++写一个简单的解析器(分析C语言)
该方案实现了一个分析C语言的词法分析+解析. 注意: 1.简单语法,部分秕.它可以在本文法的基础上进行扩展,此过程使用自上而下LL(1)语法. 2.自己主动能达到求First 集和 Follow 集. ...
- Android Tombstone/Crash的log分析和定位
有一句话叫做常在河边走,哪有不湿鞋.我们这些研究和开发Android的project师正应了这句话,相必大家在调试的时候常常会遇到这么个东西吧 *** *** *** *** *** *** *** ...
- python可变交换性能优化
离许多新的压力python性能优化见交换两个变量值可以使用 a,b = b,a 这样能够提高性能 >>> from timeit import Timer >>> ...
- 用golang写的 分解x86 intel boot/recovery工具
源代码地址: https://github.com/sndnvaps/pack-unpack-intel
- dm8148 jpeg编解码器测试
测试过程: 1)于A8将jpeg传送到videoM3解码,然后,videoM3编码.在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间: 1000w像素: 编码时间:43ms. ...
- poj 3375 Network Connection
今天在叉姐的群里找点题目做,这题目还是很好的:提意思如下 [有M个可以提供计算机网络的端口和N台计算机(计算机数量少于端口数),每个端口和计算机有一个坐标(一维的)!其中端口与计算机链接的距离 |x ...