ArcGIS Engine升级记录,从9.3到10.0
2011-04-20 22:33 贼寇在何方 阅读(2059) 评论(2) 编辑 收藏 举报 最近要做毕业设计,准备使用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 = 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,不关掉就会产生异常“
把它所在的引用ESRI.ArcGIS.3DAnalyst的Embed Interop Type属性改成False,接着就OK了
看看效果,