ArcObject10.1降级至10.0

简介: 最开始接触ArcGIS版本是9.3,为了需要也安装了9.2进行开发;因为自己的电脑配置较低,所以跑不起10.0中文版;毕业工作后,行业内用10.1居多(虽然10.3已出);现在10.4都要出来了;由于客户只有10.0的正版,所以这次要一键切换到10.0的版本,之前跳过这个版本,现在要重新来一次。

最开始接触ArcGIS版本是9.3,为了需要也安装了9.2进行开发;因为自己的电脑配置较低,所以跑不起10.0中文版;毕业工作后,行业内用10.1居多(虽然10.3已出);现在10.4都要出来了;由于客户只有10.0的正版,所以这次要一键切换到10.0的版本,之前跳过这个版本,现在要重新来一次。

以前也做过版本升级,相关博文如下:

ArcEngine9.3迁移至ArcObject10.1

ArcGIS10.2下调试10.1的程序

一般情况都是将版本升级,升级后的版本接口更高级、功能更全面。现根据需要求,将ArcObject 10.1版本的降级为ArcObject10.0版本,所有调用了AO类库的组件都需要重新在ArcGIS10.0的环境下编译。

在环境相同或相似的情况下。具体的步骤:

一、地图文档另存

高版本的地图文档(*.mxd)在低版本软件上打不开,需要在高版本软件中另存为副本(    Save As Copy)后才可使用。

二、重新添加引用

AO程序版本转换最重要的是类库的引用问题。包括AO类库引用、平台组件引用和其他引用。引用一旦改变,对应使用的控件在重新生成后自动改变。下面是通过Add ArcGIS Reference工具添加缺失的引用(黄色感叹号)。

当然有的引用通过以上方式不能找到,可以直接通过系统引用来寻找,如ESRI.ArcGIS.AxControls。

三、版本差别修改

由于是从10.1降级为10.0,所以可能原来使用的接口、类、枚举、方法、属性等对象在目标框架下不存在或名称已修改。主要的解决方法是寻找相似的对象、或注释(不影响重新编译)、或修改(不影响主要功能)等,例如:

(1)图片符号样式不支持PNG

在10.0及以前版本,图片符号样式esriIPictureType枚举不支持PNG,只支持bmp和emf格式,将注释掉PNG文件选择即可。

(2)ADF引用改变

在ArcGIS9.2到10,Utility、Utility.BaseClasseUtility会逐渐被ESRI丢弃转而用ADF来代替。

在10.0中改为ESRI.ArcGIS.ADF.Local和ESRI.ArcGIS.ADF.Connection.Local

在10.1中改为ESRI.ArcGIS.ADF和ESRI.ArcGIS.ADF.BaseClasses

(3)接口、属性的降级

随着版本的升级,接口的版本也会不断升级,表现为接口名称改变、属性和方法增加,如图例的接口,在10.0版本中最高级接口是ILegend2,在10.1版本中最高级接口是ILegend3,因此,ILegend3的FixedFrame属性在ILegend2中不能再使用。类似的还有:INorthArrow、IScaleBar等。

有的接口名称虽然未改变,但属性有增加,如IDotDensityRenderer的属性MaintainDensityBy在10.0版本中没有(10.1版本新增)。

(4)资源文件缺失

源代码缺少一些资源文件,现已直接将注释,等需要再来添加、修改。

(5)其他问题

其他具体问题的修改。

目录
相关文章
|
1月前
|
缓存 Java 应用服务中间件
常见的限流降级方案
【1月更文挑战第21天】
|
1月前
|
监控 Java 微服务
服务降级和服务熔断的区别
服务降级和服务熔断的区别
|
7月前
|
监控 Java 数据安全/隐私保护
sentinel流控降级与熔断
sentinel流控降级与熔断
62 0
|
11月前
|
设计模式 监控 算法
高可用三大利器 — 熔断、限流和降级
在武侠世界里,“利器”通常指的是武器中的上乘、出色之物;武器对于武者的重要性不言而喻,拥有一把优秀的武器可以让武者在战斗中更加得心应手,威力更强。在分布式系统追求高可用的背景下,熔断、限流和降级这三个重要的策略可以称得上三大利器。降级和熔断是不是一回事?限流 与 降级呢?
186 2
|
11月前
|
缓存 SpringCloudAlibaba 监控
系统之高可用(二):熔断降级
分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为级联故障效应,最终结果导致整个系统服务不可用
128 0
|
11月前
|
缓存 监控 前端开发
服务降级是什么?
服务降级是在面对系统负载过高、资源不足或外部依赖故障等异常情况下,通过临时屏蔽某些功能或改变服务行为,以保证核心功能的可用性和性能稳定性的一种策略。
254 0
|
前端开发 关系型数据库 MySQL
服务降级熔断小总结|学习笔记
快速学习服务降级熔断小总结
175 0
服务降级熔断小总结|学习笔记
|
Dubbo 应用服务中间件 开发者
服务降级|学习笔记
快速学习服务降级
93 0
服务降级|学习笔记
hystrix服务降级处理方案
当一个服务端的业务响应的时间过长的时候或者业务处理逻辑处理异常,不应该等待,应该给出一种处理方法
hystrix服务降级处理方案
|
Java 开发者 Sentinel
SentineI 服务熔断降级的策略 | 学习笔记
快速学习 SentineI 服务熔断降级的策略
101 0