高版本Visual Studio和低版本ArcGIS共存 工具箱没有控件的解决方法
转载请声明。博客园/B站/CSDN/知乎/小专栏 @秋意正寒
欢迎访问小专栏,更多WebGIS开发(Cesium等)经验分享:https://xiaozhuanlan.com/gishome
众所周知,如果要进行独立的而不是ArcMap Addins的二次开发,是需要使用ArcEngine的。可是,ArcEngine的授权几乎是没有的。
一般比较好弄的授(po)权(jie)是ArcMap为首的ArcGIS Desktop,如果要进行二次开发,无非有两种:
- Winform的二次开发
- Addins的二次开发
其中,后一种需要额外安装ArcObjects SDK,AO的授权与Desktop的一样。
安装AO有一个限制:有Visual Studio版本限制。例如,10.2只能匹配vs2010和2012,10.4只能匹配vs2013和vs2015.
安装AO后,与安装了Engine一样,在vs的工具箱里会出现MapControl等控件,可以直接拖拽。
===========分割线==========
现在要说的是第一种,如果安装的是10.4(为例),但是本机的VS版本高于2015,比如安装了2019,那么AO安装不上了,我还能不能调用到工具箱里的各种控件呢?
答案是可以的。
只要正确授(po)权(jie)了ArcGIS Desktop,就可以通过导入dll的方式手工引入各种控件。
在VS工具箱里引入
"C:\Windows\assembly\GAC_MSIL\ESRI.ArcGIS.AxControls\10.2.0.0__8fc3cc631e44ad86\ESRI.ArcGIS.AxControls.dll"
这个dll即可,这个dll是10.2的,而我当前开发环境是VS2017社区版。
几大控件均在此dll中定义,但是这些控件都从属于ESRI.ArcGIS.Controls这个命名空间下。