现在的位置: 首页 > 综合 > 正文

ArcGIS Engine升级记录,从9.3到10.0

2013年10月23日 ⁄ 综合 ⁄ 共 874字 ⁄ 字号 评论关闭

升级范围:
Visual Studio 2008 -> 2010
.Net framework 3.5 -> 4.0
ArcGIS Engine 9.3 -> 10

1. 升级项目
用VS2010打开项目,自动提示升级,按完成,以默认配置升级即可

2. 更改.Net 版本
Project->Properties,在Application选项卡中,把Target framework 改成.Net framework 4

3. 更新引用
把包含ESRI的引用全都删掉,重新添加,再追加一个ESRI.ArcGIS.Version,这是ArcGIS 10特有的

4. 更改代码适应C# 4
这是最繁琐的一步。C# 4对COM的调用发生了一些变化,所以许多代码需要改动。比如:

ILine line =newLineClass();
=>
ILine line =newLine();

形如LineClass一类的XXXClass统统不能够用new创建实例,也不能够用来声明变量类型:

PolygonClass polygon =newPolygonClass();
=>
IGeometryCollection polygon =newPolygon()asIGeometryCollection;

一阵大改,折腾了我一个多小时,完了就可以编译通过了。

5. 添加RuntimeManager.Binding
在ArcGIS Engine的控件启动前,必须执行:

RuntimeManager.Bind(ProductCode.EngineOrDesktop);

找个地方加上,一般可以放到Program.cs里去。

6. 关于Embed Interop Type
这个玩意儿我还没有搞明白是什么东西,但对于SceneControl中的ISceneGraphEvents_Event,不关掉就会产生异常“

event invocation for COM objects requires event to be attributed with DispIdAttribute
把它所在的引用ESRI.ArcGIS.3DAnalyst的Embed Interop Type属性改成False,接着就OK了

抱歉!评论已关闭.