漏洞

升级至 Pro 2.8 后,ArcGIS Pro 可能会在启动时崩溃,并返回异常“System.MissingFieldException”和消息“未找到字段:'Lucene.Net.Analysis.StopAnalyzer.ENGLISH_STOP_WORDS_SET'”

Last Published: May 18, 2021

描述

升级至 2.8 版本后,对于在 .NET 全局程序集缓存 (GAC) 中注册了 .NET 3.5 版本 Lucene.net v3.0.3 的计算机,ArcGIS Pro 可能会在该计算机上启动时崩溃,并且返回异常“System.MissingFieldException”和消息“未找到字段:'Lucene.Net.Analysis.StopAnalyzer.ENGLISH_STOP_WORDS_SET'”。

Lucene.net 是 Esri 和非 Esri 应用程序都会使用的一个流行开源搜索库。

这已被记录为 BUG-000139936。

原因

发生崩溃是由于 ArcGIS Pro 所使用的 Lucene.net.dll 副本与其他应用程序在 GAC 中注册的类似副本之间存在冲突。 目前尚不明确哪些应用程序正在受影响计算机上的 GAC 中注册冲突版本的 Lucene,但 Esri 已确认 ArcGIS Pro 和 ArcMap 均未在 GAC 中注册 Lucene v3.0.3。 .NET 框架通过允许 DLL 作者在 DLL 内容更改时,唯一命名和设置 DLL 版本来防止这种类型的 DLL 冲突。 但是,Lucene.net 库的编写方式并未允许轻松检测冲突。

解决办法

警告: 下面的说明涉及更改操作系统的重要组成部分。 建议您先备份操作系统及文件(包括注册表),然后再继续操作。 必要时,请咨询有资历的计算机系统专业人士。 在遵循这些说明进行操作时,Esri 无法保证非正确修改造成的结果。 因此,请谨慎使用并自行承担风险。
  1. 打开 regedit.exe 并浏览至 HKEY_CURRENT_USER\Software\ESRI\ArcGISPro\Settings。
    如果该计算机从未安装过 ArcGIS Pro,则此文件夹可能不存在。
  2. 创建一个新的 DWORD(32 位)值,并将其命名为 CommandSearchEnabled
  3. 验证 CommandSearchEnabled 的数据列是否为 0x00000000 (0)。 如果该值不是 0x00000000 (0),请将其设置为 0。

ArcGIS Pro 2.8 现在应该可以启动,而不会发生崩溃。 但是,要使用新的“命令搜索”功能,则需要后续修补程序。

文章 ID: 000025643

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

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

下载 Esri 支持应用程序

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项