好久没碰.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的改互操作类型的方法,编译了一下就不报错了;

继续报错:

在项目属性-生成-目标平台改为x86

ok:

以上就是我遇到的ArcGIS二次开发的工程在不同开发环境转换时遇到的一些问题和解决方法。

将arcEngine9.3和dev9.2.4开发的项目升级成arcObject10.2和dev15.1.3过程中遇到的问题和解决的更多相关文章

  1. Android开发把项目打包成apk

    做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...

  2. 开发类似"音速启动"的原创工具简码"万能助手"的过程中对ztree.js与win标准控件treeview、HTMLayout树形框等优缺点的比较

    在开发类似"音速启动"的桌面快捷方式管理软件简码"万能助手"的早期规划中,曾经考虑过几种树形框方案: ztree.js.win标准控件treeview.HTML ...

  3. Android开发把项目打包成apk-(转)

    做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...

  4. (转)Android开发把项目打包成apk

    转:http://blog.csdn.net/luoyin22/article/details/7862742 做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们 ...

  5. 使用VisualStudio2015开发QT项目

    一直习惯用VS,做QT项目时,不停的来回切IDE有些不方便.研究了一下QT的编译. 实际QT编译的机制和cmake是相同的,QT的IDE使用pro文件进行项目管理.QMake通过解析pro工程文件,生 ...

  6. Eclipse开发Web项目连接MySQL时找不到驱动的解决办法

    当我们使用Eclipse开发Web项目连接MySQL时后台报找不到驱动的错误,如下:解决办法: 1.这时我们首先要检查我们是否导入了连接MySQL数据库的jar包,如图,是否已经将jar包复制到项目下 ...

  7. android开发导包升级到androidx踩坑记录【转载】

    最近一直在做安卓开发,奈何手中的资料比较老,资料上的一些Import经常没有,十分让人头疼. 感谢简书上的[张晴天天天天天]做的整理. 在这里也记录一下备用. 升级Android Studio后,在 ...

  8. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  9. C语言可以开发哪些项目?

    C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...

随机推荐

  1. 【目录】linux 编程

    随笔分类 - linux 编程 Linux编程 24 shell编程(结构化 if [ condition ] 数值比较,字符串比较) 摘要: 一.概述 接着上篇讲的结构化命令,最后讲到了test命令 ...

  2. Git 关于Fast Forward提交的简单说明

    多人协同开发,使用Git经常会看到警告信息包含术语:fast forward, 这是何义? 简单来说就是提交到远程中心仓库的代码必须是按照时间顺序的. 比如A从中心仓库拿到代码后,对文件f进行了修改. ...

  3. JS异步事件顺序:setTimeout,async,promise

    为什么最近更新那么频繁,还不是因为笔试的时候瞎了? 先说异步事件执行顺序的规则: 1. 定时器异步队列和promise队列不是同一队列,promise优先级高于setTimeout; 2. 创建pro ...

  4. java 深入剖析ThreadLocal

    一.对ThreadLocal中的理解 ThreadLocal的,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多.可能很多朋友都知道的ThreadLocal为变量在每个线程中都创建 ...

  5. 有趣的taskset命令,使进程再指定CPU上运行

    前言 taskset命令,用于进程的CPU调优,可以把某进程,指定再某CPU内工作. 如还不明白,可以参考此文 http://www.361way.com/linux-context-switch/5 ...

  6. 笔记70 Spring Boot快速入门(八)(重要)

    上传文件 一.方式一 1.上传页面 upLoadPage.html <!DOCTYPE html> <html lang="en"> <head> ...

  7. 图解SSH原理_20190613

    SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案.使用范围最广泛的当然是开源实现OpenSSH. 2. SSH工作原理 在讨论SSH的原理和使用前,我们需要分 ...

  8. Ubuntu更新完NVIDIA驱动后,重启电脑进入不了系统,一直处于登录界面

    如题描述,我的系统是Ubuntu16.04,安装caffe的过程将一些驱动更新了,后来重启电脑时发现我进入不了系统了,输入我的登录密码会发现屏幕一闪,然后又重新跳回到登录界面,就是进入了login l ...

  9. bzoj 2013

    http://www.lydsy.com/JudgeOnline/problem.php?id=2013 最初看这个题的时候,以为神题不可做,然后去找yzjc..然后做法过于简单了(' '       ...

  10. php strrev()函数 语法

    php strrev()函数 语法 strrev()怎么用? php strrev()函数用于反转字符串,语法是strrev(string),返回已反转的字符串.大理石构件来图加工 作用:反转字符串 ...