将arcEngine9.3和dev9.2.4开发的项目升级成arcObject10.2和dev15.1.3过程中遇到的问题和解决
Posted 梦尽落花
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将arcEngine9.3和dev9.2.4开发的项目升级成arcObject10.2和dev15.1.3过程中遇到的问题和解决相关的知识,希望对你有一定的参考价值。
好久没碰.net了,arcgis更是感觉都忘干净了,今天将arcEngine9.3和dev9.2.4开发的一个项目升级成arcObject10.2和dev15.1.3过程中遇到了一系问题,留个笔记,留个回忆;
一,双击打开项目:
这个时候发现,一直在upgrade和ok这两步循环,上面的英文描述原因已经说得很明白了,就是需要.NET framework4.0+以上的版本,而这个项目我看了一下.NET framework3.5版本是3.5
换成4.0以上就行,如下图:
然后再回到upgrade界面,点击upgrade;
这个时候dev的引用已经全部换成新的了,然后换掉arcgis的引用
删掉下面这两个烦人的licenses文件,每次重启后都会有这个文件产生,每次直接删;
然后,重新生成项目,发现报了很多错误:
以ESRI.ArcGIS.Display为例:修改嵌入互操作属性
对着上面的错误,修改所有报错的嵌入互操作属性;
注意这里有个坑,并不是所有的互操作类型都是true,有些不能为true,否则会报如下错误:
一定要对着错误,需要改,那些需要设置为True就设置;
比如如下错误:
就是需要将互操作类型改成false;
有可能会出现:预定义的类型“Microsoft.CSharp.RuntimeBinder.Binder”未定义或未导入 D:\\temp\\Imageclip\\Imageclip\\CSC Imageclip 错误。
这时:
用记事本打开 *.csproj
找到<ItemGroup>区段
手动加入
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
在重新打开项目就可以了;
然后在programe.cs里面记得加上这句话
记得加上ESRI.ArcGIS.Version引用
在ArcGIS10以上环境中,有可能发现找不到ESRI.ArcGIS.Utility、ESRI.ArcGIS.Utility.BaseClasses等引用,
因为ArcGIS9.2之后Utility会逐渐被丢弃的,转而用ADF来代替,
using ESRI.ArcGIS.Utility和
using ESRI.ArcGIS.Utility.BaseClasses
改为 using ESRI.ArcGIS.ADF和
using ESRI.ArcGIS.ADF.BaseClasses
上图的错误2 是因为却缺引用,找到ESRI.ArcGIS.GeoAnalyst包引用上就好。
本人在转换用VS2008,DevExpress9.2开发的工程到VS2012,DevExpresss15.3下面时还遇到一些问题:
1,首先用vs2012打开后迁移报告报了个错误:
这个错误貌似影响到了后面DevExpress9.2到DevExpresss15.3的自动转换,一直在upgrade和ok这两步循环,.NET framework的版本已经k换成了4.0。
解决:这个时候我采用手动一条条添加Dev15.3的引用替换掉9.2版本的解决了问题,如下图;
2.继续编译,报如下错误:
无法嵌入来自程序集“c:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.0\\System.dll”的互操作类型,
因为它缺少“GuidAttribute”特性或“PrimaryInteropAssemblyAttribute”特性 c:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.0\\System.dll
解决:这里我参考ESRI的改互操作类型的方法,编译了一下就不报错了;
继续报错:
ok:
以上就是我遇到的ArcGIS二次开发的工程在不同开发环境转换时遇到的一些问题和解决方法。
以上是关于将arcEngine9.3和dev9.2.4开发的项目升级成arcObject10.2和dev15.1.3过程中遇到的问题和解决的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何将开发和/或测试网站与公共和搜索引擎机器人隔离开来?
Unity CEO:将注重发展VR开发工具Carte Blanche和EditorVR
与未知开发者在 Hackhackons 中进行 iOS 开发?如何将 Xcode 和调试工具分享给没有 OSX 设备的人? [关闭]