ArcGIS Engine (AE) 是 ESRI 推出的经典桌面 GIS 开发组件。虽然官方主流支持的版本较旧,但在实际项目中,我们往往需要在较新的开发环境(如 Visual Studio 2019)中使用它。

        本文将介绍 AE 主流版本与 VS 的对应关系,以及如何通过修改注册表在 VS2019 中“强行”挂载 AE,并解释 VS2022 为何无法兼容。

1. 主流版本对应关系

        官方推荐的开发环境搭配如下表所示。可以看到,AE 10.8 原生最高仅支持到 VS2017。

AE 版本支持的 VS 版本.NET Framework
10.2.2VS20103.5 SP1
10.4.1VS2013 / 20154.5
10.8VS2017 / 2019*4.5.2 或更高
注意:VS2019 并非原生完美支持,需要进行额外的注册表配置才能识别。

2. VS2019 配置攻略

        由于 AE 的安装程序会检测系统注册表中的 VS 版本信息,为了让它识别 VS2019,我们需要通过修改注册表,让系统“伪装”成安装了 VS2015 (版本号 14.0)。

2.1 修改注册表

  1. 按下 Win + R 组合键打开运行,输入 regedit 并回车打开注册表编辑器。
  2. 定位到路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0

    • 提示:如果没有 14.0 项,请右键 VisualStudio -> 新建 -> 项,命名为 14.0。(注:12.0 对应 VS2013,14.0 对应 VS2015)。
  3. 14.0 下新建两个字符串值 (String Value)

    • InstallDir:数值数据修改为 VS2019 主程序所在目录。
    • ShellFolder:数值数据修改为 VS2019 安装根目录。
    ⚠️ 路径警告
    下图示例中使用的是 Enterprise(企业版)。如果你安装的是 Community(社区版)或 Professional(专业版),请务必将路径中的 Enterprise 替换为对应的版本文件夹名!

    参考路径示例(社区版):

    • InstallDir: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\
    • ShellFolder: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\

    配置结果如下图所示:
    注册表修改示例

2.2 安装与配置 AE

        在 ArcGIS 体系中,ArcObjects (AO) 是底层核心,而 ArcGIS Engine (AE) 是将 AO 的功能封装后的独立软件包。对于开发者而言,只需要安装 AE SDK 即可进行开发。

  1. 安装 AE:修改完注册表后,运行 AE 安装包,按默认选项一路安装即可(此时它应该能通过环境检测)。
  2. 新建项目:打开 VS2019,新建一个空白的 Windows 窗体应用 (.NET Framework) 项目。
    新建项目
  3. 添加窗体:在解决方案资源管理器中,右键项目 -> 添加 -> Windows 窗体。
    新建窗体
  4. 引入引用:右键“引用” -> 添加引用 -> 扩展 -> 选择 ESRI 开头的相关库(如 ESRI.ArcGIS.Carto, ESRI.ArcGIS.Controls, ESRI.ArcGIS.System 等)。
    添加引用1
    添加引用2
  5. 添加工具箱:打开工具箱 -> 空白处右键 -> 选择项 -> COM 组件 / .NET Framework 组件 -> 勾选 ESRI 的控件(如 MapControl, TOCControl 等)。
    添加工具箱1
    添加工具箱2
  6. 拖拽控件:将控件拖入窗体,如果能正常显示且不报错,说明环境配置成功。
    拖拽控件

3. 关于 VS2022 的兼容性

        结论:ArcGIS Engine 无法在 Visual Studio 2022 中进行窗体设计开发。

        原因解析
        Visual Studio 2022 进行了重大的底层架构升级,主程序从 32 位 (x86) 升级到了 64 位 (x64)
        而 ArcGIS Engine (10.x 系列) 是基于古老的 32 位 COM 组件构建的。在 VS2022 的 64 位窗体设计器中,无法加载 32 位的控件,即使强行引用也会报错:
        错误提示:无法加载 DLL“ArcGISVersion.dll”: 找不到指定的模块

        解决方案

  1. 继续使用 AE:请坚守 VS2019 或更早版本。
  2. 拥抱新技术:如果必须使用 VS2022,建议转型使用 ArcGIS Pro SDK 进行开发(基于 64 位架构,原生支持 VS2022)。

VS2022报错