VS2003+AO8.3项目向VS2005+AO9.31的迁移升级简介(附AO版本转换工具下载)

 

    最近,对单位VS2003+AO8.3业务系统进行了迁移到VS2005+AO9.31的升级工作。值此转换顺利完成之际,简单地回顾了一下.NET+AO项目升级的具体操作步骤和注意事项,特别介绍了专门编写的AO迁移小工具,并提供了下载。 针对VS+AO项目的迁移升级的思路和具体操作方法,欢迎大家一起来探讨。

一、升级操作步骤:    

1、升级工作环境搭建,第一套环境,VS2003+AO8.3、VS2005开发环境,便于项目由VS2003升级到VS2005,AO版本不变。第二套环境,VS2005+AO9.31开发环境,便于项目由VS2005+AO8.3升级到VS2005+AO9.31。我采用单机双系统搭建二套开发(升级)环境。

2、升级VS版本。在第一套环境中用VS2005打开VS2003项目,按照项目迁移向导指引完成VS2003迁移到VS2005。

3、调试步骤2生成的VS2005+AO8.3项目,使项目能正常运行。需注意.NET1.1与.NET2.0之间的一些区别,还需特别注意水晶报表的升级,修改相关引用的路径:

CrystalDecisions.CrystalReports.Engine
CrystalDecisions.Enterprise.Framework(VS2005无)
CrystalDecisions.Enterprise.InfoStore(VS2005无)
CrystalDecisions.ReportSource
CrystalDecisions.Shared

4、升级AO版本。在第二套环境中,可通过2中方式升级AO8.3到9.31。方法一:通过VS2005IDE中菜单中的 文件>打开>转换来完成,本人用此法从上周五晚上开始运行转换,到本周一早上上班时还未见转换完成(呵呵,机器比较破旧....?郁闷 啊!)。方法二:通过自己编写的转换小工具完成转换,优点是速度快、转换过程比较可控,缺点是无法完全自动,最终仍需人工干预(智能化程度只有90%啊....)。

5、调试,最终完成VS2003+AO8.3项目向VS2005+AO9.31的迁移升级。

二、AO8.3到AO9.31的转换工具介绍。
1、工具转换原则:AO的类、接口、事件名称在AO8.3和AO9.31中基本没有改变。
2、获取项目中AO8.3使用过的类、接口、事件名称。在上述升级操作步骤3完成后,步骤4未执行前,去掉各个项目中的AO引用ESRI.ArcObjects.Core,再生成项目,可以列出所有招不到引用的AO类、接口、事件的名称(参见下载包中的A083.txt文件)。
3、获取AO的类、接口、事件名称对应的AO9.3的命名空间,比如:IFeatureLayer对应AO9.3的命名空间为ESRI.ArcGIS.Carto。具体可参见下载包中的A093.txt文件。
4、转换工具通过上述的A083.txt文件和A093.txt文件可以生成AO8.3项目中使用过的类、接口、事件名称与AO9.3命名空间之间的对应关系列表(参见下载包中的A083TO93.txt文件)。
5、转换工具根据A083TO93.txt文件的对应列表(转换为正则表达式),对项目文件中的.cs文件进行扫描匹配,判断文件是否需要转换。如果需要转换,则根据使用到得类、接口、事件等来添加相应的using引用。
6、如果以项目为整体转换,则还会根据使用到得类、接口、事件等在项目中自动添加类库引用。
7、部分需要手工处理的情形:
*** 同一类名称在不同命名空间中存在时导致的不明确的引用,比如,ConnectionPointContainer是ESRI.ArcGIS.TOCControl.IConnectionPointContainer和ESRI.ArcGIS.Display.IConnectionPointContainer之间的不明确的引用。
*** 属性名称或大小写改变,比如,ESRI.ArcGIS.Display.tagRECT的left属性(AO8.3为Left)。
*** 部分方法的参数数量、类型不匹配。
*** 部分操作需先授权,比如SDE连接需Licence授权,可增加如下代码:
IAoInitialize aoInitialize = new AoInitialize();
aoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeArcInfo);

8、工具的部分操作界面:

 

 

 

补充链接:

1、AO转换注意事项可参见:http://blog.csdn.net/tsing_feng/archive/2007/05/14/1608089.aspx

2、AO转换对应关系可参见:http://edndoc.esri.com/arcobjects/9.0/ArcGISDevHelp/Technical

 

附件工具下载:

/Files/ysxlh/AO83TO93.rar

posted @ 2010-01-05 23:05  yisx  阅读(1929)  评论(3编辑  收藏  举报