ArcGIS Engine升级记录,从9.3到10.0

升级范围:
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 = new LineClass (); => ILine line = new Line ();

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

PolygonClass polygon = new PolygonClass (); =>
IGeometryCollection polygon = new Polygon () as IGeometryCollection ;

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

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了

你可能感兴趣的:(ArcGIS Engine升级记录,从9.3到10.0)