Azure DevOps Server 2020安装Search报插件版本不兼容错误
Azure DevOps Server 2020 Update 1 Patch4 独立Search部署版本不兼容问题解决方案
问题本质
该问题属于Patch4版本的官方打包校验逻辑疏漏,不属于配置操作遗漏:
- 补丁包内置的Elasticsearch插件
AlmSearchPlugin实际版本为6.2.4.22,但就绪检查模块硬编码的兼容插件版本上限为6.2.4.18,直接触发版本不匹配报错 - 官方发行说明提到的「修改注册表Version值为5.4.1」的方案无效:
Configure-TFSSearch.ps1脚本运行时会自动读取内置插件的版本号覆写注册表值,手动修改的数值会被自动回退为脚本读取到的版本号,无法绕过校验。
评论提到的修改安装目录文件的方案为实测有效方案,操作步骤如下:
- 提前关闭所有关联进程:退出所有正在运行的Search配置PowerShell窗口,停止当前机器上已启动的Elasticsearch服务、IIS相关站点,避免文件被占用无法修改
- 定位到Search部署目录下的校验脚本,默认路径为
\Search\zip\Configuration\Validations\SearchPluginVersionValidation.ps1 - 打开该脚本,找到版本校验的硬编码逻辑,将判定为兼容版本的
6.2.4.18修改为当前内置插件的实际版本6.2.4.22后保存文件 - 同目录下找到
Configure-TFSSearch.ps1脚本,查找其中涉及版本校验、注册表版本值写入的逻辑,将对应版本号同步修改为6.2.4.22,避免后续脚本运行时回滚注册表值、重复触发版本报错 - 修改前建议对两个原脚本做备份,避免修改错误导致配置流程中断
- 无需提前手动修改注册表,直接以管理员权限启动PowerShell,切换到脚本所在目录,执行配置命令:
.\Configure-TFSSearch.ps1 -Operation update -verbose - 脚本执行完成后,回到Azure DevOps Server的就绪检查页面重新执行扫描,版本不兼容的报错会消失,可继续完成后续Search服务配置流程。
避坑提示
- 不要尝试手动将内置的
AlmSearchPlugin降级到6.2.4.18版本,Patch4对应的插件包含安全补丁和索引逻辑修复,降级后会出现工作项搜索异常、代码索引失败等隐性问题 - 配置完成后可进入Elasticsearch的bin目录,执行
elasticsearch-plugin list命令确认AlmSearchPlugin正常加载,再到Azure DevOps集合管理页面验证全库搜索功能可用即可。
内容的提问来源于stack exchange,提问作者Remkop
相关产品推荐
相关产品推荐

