你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
问题
话题
文章
帮助
登录
注册
ArcGIS Engine
ArcObjects|ArcGIS Engine升级的常见问题
3
分享
2016-06-06
ArcGIS Engine 9.x应该是当年国内GIS开发用得最多的产品,培养了一批“二次开发者”,建设了无数“应用系统”。随着B/S和移动的流行,AE逐渐式微,但产品仍在,版本依旧继续更新。而且,目前各种方案想要完全替代AE的功能还不现实,总有一些项目面临版本升级,故整理一些常见的问题帮助新老同行。
总体来看:
在9.3到10.0的升级时,AE的接口发生了较多的变化,可以仔细阅读参考帮助中的升级指南:
http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/How_to_migrate_ArcGIS_9_3_Desktop_and_Engine_stand_alone_applications_to_ArcGIS_10/0001000002ns000000/
从10.1开始取消了通过DCOM方式远程调用AO的功能(一个MS的大坑),因此针对ArcGIS Server的连接和管理的代码基本都需要修改。
其他版本的升级时也都会有一些接口变化,通常是一些不常用的接口。
一些比较常见的问题:
从10.0开始,ArcGIS Engine使用了与Desktop一样的许可模式(在线绑定计算机信息),破解的复杂度大增,破解的稳定性极差。由于几乎没有人用正版进行开发,开发者数量减少除了大势所趋,破解难度增加也是一个推手。我的建议是,用Desktop的试用许可进行开发,除了控件不能拖拽,其他问题不大。有文章手把手教你申请试用许可:
http://zhihu.esrichina.com.cn//article/131
绑定产品,通常在代码的初始阶段加入ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)语句,该语句需要引用ESRI.ArcGIS.Version类库(C:\Program Files (x86)\Common Files\ArcGIS\bin\ArcGISVersion.dll)。该语句的功能是寻找产品的安装目录,10.0之前ArcGIS的主要产品是安装在同一个目录中,所以不用区分。10.0开始每个产品都有各自的目录了,因此在代码中也需要指定一下。(通常在InitializeComponent之前,C#在Main函数开始时,VB.NET在Public Sub New()函数中)
9.2中ADF类的引用为ESRI.ArcGIS.ADF和ESRI.ArcGIS.ADF.Connection在10.0中改为ESRI.ArcGIS.ADF.Local和ESRI.ArcGIS.ADF.Connection.Local
AxControls类库需要在.NET引用界面下才能找到,ArcGIS引用中没有。拖拽控件时会自动添加,自己添加时可能会找不到。
从.NET Framework 4.0开始,需要注意ESRI的类库“嵌入式互操作类型”必须设置为False,ESRI不支持这个新特性,好像很多厂商都不支持,具体原因仔细搜一搜吧。
引用的类库“特定版本”建议设置成False,升级时省得改来改去的。
在64位操作系统,VS2010中,使用.NET Framework 3.5环境时,程序运行时可能报错。解决方法参考:
http://support.esrichina-bj.cn/2011/0826/1255.html
另外,VS2010的帮助程序超级难用(换个第三方的吧),而AE10.1只支持这个版本的IDE,所以我从不用这个版本(MS又一个坑啊坑)。
在64位操作系统中需要在项目的编译选项中,将目标平台(Target CPU)选择为x86。老程序可能用的是32位系统,所以没这个问题。在64位系统中编译的程序,可以运行在32位系统中,至少.NET和Java没问题。
9.x中ESRI.ArcGIS.Display.tagRECT 在10.x中改为 ESRI.ArcGIS.esriSystem.tagRECT ,这个类用的还是挺多的。
IMap.ClipGeometry在10.x中需要结合IMapClipOptions接口一起使用,这是一种典型现象,原来用一个接口搞定的事情,现在功能扩展了,用两个接口组合一下。
10.x中对VC++的支持渐弱,可能在某些机器上出现控件无法注册和GP工具无法执行的问题,问题可能随机出现。这问题就像是个门槛,能解决的人再考虑用C++吧。
文章来源:
http://www.jianshu.com/p/df923dc4464e
3
分享
微博
QZONE
微信
2016-06-06
2 个评论
herry
很实用的文章,让俺回想起了当年程序升级时....
giszkdl
不知道10.0升级到10.2问题多不多 到时候请教你
要回复文章请先
登录
或
注册
发起人
石羽
相关问题
如何优雅的使用ArcGIS知乎?
建设ArcGIS知乎平台的目和意义?
ArcGIS知乎社区改进意见征集
【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
苹果系统下可以使用arcgis 吗?
arcgis版本兼容性
请问ArcGIS适合在局域网内用javaweb做二次开发吗?
ArcGIS 知乎社区活动 之 字幕组加鸡腿暨KBP字幕组招新【获奖名单公布与优秀作品展示】
请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
ArcGIS如何求栅格图像的“质心”