升级Azure DevOps 2022p4至2022 0.1时缺失指定DLL文件求助
问题概述
从Azure DevOps 2022 P4同目录升级到2022.0.1时,连续3次出现Microsoft.VisualStudio.Services.Gallery.Server.dll文件缺失,导致数据库升级中途失败、数据库损坏。就绪检查未检测到该文件缺失(可能还存在其他缺失文件)。但在干净机器上直接安装2022.0.1可正常完成。
错误信息(已翻译)
TF255356: 配置Azure DevOps数据库时发生以下错误:TF400711: 在StartInstallHostUpdates期间执行组件InstallInheritedDefinitionsOnPrem的服务步骤“Install Inherited Service Definitions”时出错:无法加载文件或程序集“Microsoft.VisualStudio.Services.Gallery.Server, Version: 19.0.0.0, Culture: neutral, PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。有关详细信息,请查看配置日志。
解决方案建议
你提到的“在干净机器安装2022.0.1后复制缺失文件再运行配置助手”是可行思路,但更稳妥的操作步骤如下:
步骤1:备份现有环境
升级前务必完整备份Azure DevOps的所有数据库、应用程序文件及配置,避免升级失败导致数据丢失。步骤2:提取干净安装的完整文件
在干净机器上完成2022.0.1的安装后,复制整个安装目录(默认路径为C:\Program Files\Azure DevOps Server 2022)下的所有文件,覆盖到待升级机器的对应目录中。注意不要覆盖自定义配置文件(如web.config等),若有冲突需对比合并配置。步骤3:预检查缺失文件
手动验证关键DLL文件是否存在,除了Microsoft.VisualStudio.Services.Gallery.Server.dll,还需检查同目录下其他相关Gallery组件的DLL(如Microsoft.VisualStudio.Services.Gallery.Common.dll等),确保无遗漏。步骤4:运行配置助手
覆盖文件后,重新运行Azure DevOps配置助手,执行升级流程。此时就绪检查应能通过,数据库升级可正常完成。备选方案:全新迁移升级
若上述方法仍失败,可考虑在干净机器上安装2022.0.1,然后将现有Azure DevOps 2022 P4的数据库备份恢复到新环境,再通过配置助手完成数据迁移。这种方式能避免原环境文件缺失带来的问题,同时降低数据库损坏风险。
注意事项
- 不要仅单独复制单个DLL文件,因为该文件可能存在依赖项,单独复制仍可能导致加载失败。
- 升级完成后需验证所有服务(如代码仓库、工作项、流水线等)是否正常运行,确保功能无异常。
内容的提问来源于stack exchange,提问作者Heiko Kummerfeld

