ArcGIS Engine升级记录,从9.3到10.0

来源:互联网 时间:1970-01-01

最近要做毕业设计,准备使用VS2010和ArcGIS10开发,之前做的系统还有一些利用价值,便花了点时间把原来的系统升级了下。

升级范围:
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了

 

看看效果,

 

 

 

 


相关阅读:
Top