问题
将 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 标记,如下所示:
C:\Program Files (x86)\MSBuild\Esri\ESRI.ArcGIS.AddIns.targets
C:\Program Files (x86)\MSBuild\Esri\ESRI.ArcGIS.AddIns.11.targets
注: 新路径名称包含数字 11 作为版本号。
注: 要使工程反映更改,请关闭并重新打开工程文件并重新构建工程。 工程构建成功,警告信息将不再显示,*.esriAddinx 文件生成正确。 可以在工程的 bin 文件夹中确认加载项的生成。
在后一种迁移到 Visual Studio 2015 的情况下,应在以上步骤 2 中采取完全相反的步骤。 从工程文件的 3 个 XML 标记中移除整数 11。 这也适用于将 10.2.x 或 10.3.x 版本的旧加载项工程迁移到任何更高版本:10.4.x -10.8.x。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序