ArcEngine在VS环境下开发遇到的一些配置问题

Q:我要用ArcGIS Engine 10,一定要用Visual Studio 2010吗?

A: 不一定,不论什么版本的Visual Studio和什么版本ArcGIS Engine SDK,都是可以组合的。
因为ArcGIS Engine的SDK是一些COM组件,而C#、VB、VC++对COM的支持一直是有的。

注:Engine SDK可能会检查系统已安装的VisualStudio版本,比如ArcObjects 10 SDK(内含Engine)只在已有10或者08SP1的系统完成安装。当然,如果有办法绕过去,就没问题了。

可能你装上之后工具箱里面的神马MapControl,SceneControl、LicenseControl都没有出来。
这个没关系,添加工具箱项,找到Engine的dll,添加进来,一切Ok

这个问题还是补充地具体一些吧:
1、在VS工具箱内右键,添加选项卡,取名ArcGIS Windows Form
2、在新选项卡上右键,选择项…
3、点浏览,找到ESRI.ArcGIS.AxControls.dll(缺省安装在”C:\Program Files\ArcGIS\DotNet\ESRI.ArcGIS.AxControls.dll”),打开。

4、勾选中新出现的那几个ArcGIS的控件,点确定。

Q:为什么以前正常的代码,现在都编译都通不过了,提示什么“无法嵌入互操作类型…

A:你用的是Visual Studio 2010和C# 4吧?如果是,那就对了。这个问题和Engine本身无关。
这是C# 4对COMInterop的一个改进,把创建CoClass时的类名的Class后缀去掉即可。不允许用CoClass本身,而必须用相应的接口来创建对象。
比如,

  1. IPoint p = new PointClass()

复制代码

改为:

  1. IPoint p = new Point()

复制代码

详细的解释可以看这里的:嵌入的互操作类型(如果尝试使用 CoClass 创建嵌入的 COM 类型的实例,则会导致编译器错误)

Q:为什么以前正常的代码,现在一运行就报错,抛出异常BadImageFormatException

A:你的操作系统是64位的Windows吧?可是ArcGIS现在只有32位的,所以必须用X86平台生成项目。
打开项目属性,在“生成”选项卡中找到目标平台,把Any CPU改为x86,重新生成即可。

Q:哪儿有10的ArcGIS Engine SDK?
A:ArcGIS 10不需要安装单独的Engine开发包,在Desktop的镜像中,安装ArcObjects SDK就可以使用Engine的那些控件做开发了。只在部署的时候还需要Engine Runtime。

Q:为什么在9.3中执行正常的代码,在10中会执行出错,抛出异常COMException
A:是如下图这个异常么?

10新增了一个dll,ESRI.ArcGIS.Version,添加这个引用。然后在Main方法中,在窗体启动之前,添加这么一行代码:

  1. RuntimeManager.Bind(ProductCode.EngineOrDesktop);

复制代码

重新编译执行即可。

Q:为什么在开发的时候提示ArcEngine的分析模块Analysis无法使用?

A:是你安装的AE的破解不完全,有分析模块和三维模块等的许可无法使用。可以用下面的ecp文件重新加载一下即可。


Q:电脑已经安装了Arcgis desktop,然后在安装VS2008 的时候在中间卡住了,一直安装不上VS2008?

A:Arcgis软件对注册表进行了限制,只要按一下的方法就能解决出现的问题:

1)通过regeidt进入注册表

2)修改HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control

3)将原来的值改为Value: ffffffff (4294967295)(DWORD,16进制下),8个f。

4)重新启动

5)打开服务的Windows module installer为启动。

6)即可安装VS.


转载自:https://blog.csdn.net/mingzai624/article/details/19678965

You may also like...