问题

问题:从 ArcMap 中使用的旧版 Visual Studio 迁移到新版 Visual Studio 时,无法生成加载项

Last Published: November 24, 2021

描述

将 Visual Studio 2010 中的 ArcObjects 10.1 加载项迁移到 Visual Studio 2012 中的 ArcObjects 10.2.x 加载项时,构建工程时不会生成 *.esriAddinx 文件。 可以通过检查工程的 bin 文件夹来确认此问题。Visual Studio 2012 将生成以下警告消息:

“无法创建 .esriAddin;缺少 ESRI ArcGIS 加载项 SDK 组件。”

将 Visual Studio 2013 中的 ArcObjects 10.3.x 加载项迁移到 Visual Studio 2015 中的 ArcObjects 10.4.x 加载项时,会生成完全相同的警告消息。 原因是相关的,但彼此完全相反。

原因

对于第一种情况,出现此问题的原因是 Visual Studio 2012 的软件开发工具包 (SDK) 中已安装 Microsoft Build Engine (MSBuild) 的 .targets 文件的路径名称与 Visual Studio 2010 中的结构不同。 加载项的路径名称中未包含数字 11 作为目标版本的版本号,如以下加载项工程文件的 XML 代码所示:

Conditions="!Exists('$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.targets')"

在后一种迁移到 Visual Studio 2015 的情况下,会出现完全相反的情况。 加载项工程文件中的 XML 代码包含整数 11,但它不应该存在:

Conditions="!Exists('$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.11.targets')"

针对 Visual Studio 2012 和 Visual Studio 2013 添加了整数 11,并在 2015 版本中将其移除。

解决方案或解决方法

对于第一种迁移到 Visual Studio 2012 的情况,请编辑工程文件中包含路径 ESRI.ArcGIS.AddIns.targets 的 XML 标记,如下所示:

  1. 在 Visual Studio 中打开工程文件。 右键单击该工程文件夹,然后单击卸载工程
  2. 打开该工程文件。 右键单击该工程文件夹,然后单击编辑工程
  3. 更改包含以下路径的所有 XML 标记(它们出现在 3 个不同的标记中):
    from:
C:\Program Files (x86)\MSBuild\Esri\ESRI.ArcGIS.AddIns.targets
to:
C:\Program Files (x86)\MSBuild\Esri\ESRI.ArcGIS.AddIns.11.targets
  1. 保存工程文件并将其关闭。
注: 新路径名称包含数字 11 作为版本号。
[O-Image]
  1. 重新加载工程。 右键单击该工程文件夹,然后单击重新加载工程
注: 要使工程反映更改,请关闭并重新打开工程文件并重新构建工程。 工程构建成功,警告信息将不再显示,*.esriAddinx 文件生成正确。 可以在工程的 bin 文件夹中确认加载项的生成。

在后一种迁移到 Visual Studio 2015 的情况下,应在以上步骤 2 中采取完全相反的步骤。 从工程文件的 3 个 XML 标记中移除整数 11。 这也适用于将 10.2.x 或 10.3.x 版本的旧加载项工程迁移到任何更高版本:10.4.x -10.8.x。

文章 ID: 000013261

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项