Azure构建失败:找不到Microsoft.IO.Path.GetFileName(System.ReadOnlySpan`1)方法
问题描述
近几小时(约格林尼治标准时间10:00)启动的所有构建在「Build Solution」步骤失败,日志报错:
##[error]EXEC(0,0): Error : Error occurred during processing of input file 'XXX.XXX.dll' --> Method not found: 'System.ReadOnlySpan`1 Microsoft.IO.Path.GetFileName(System.ReadOnlySpan`1<Char>)'

代码库未做任何变更,寻求解决方案。
解决方案
- 检查Microsoft.IO.RecyclableMemoryStream包版本:
Microsoft.IO.Path.GetFileName的ReadOnlySpan重载是在该包2.0.0及以上版本引入的,若构建环境的包缓存或引用版本回退到旧版,会触发此错误。可在项目文件中强制指定该包为最新稳定版,或在构建脚本中执行dotnet nuget locals all --clear清除NuGet缓存后重新拉取。 - 确认.NET运行时/SDK版本:该API重载依赖.NET Core 3.0及以上版本支持,若构建服务器的.NET SDK/runtime被意外降级,会导致API找不到。检查并确保构建环境的.NET版本与之前成功构建时一致,必要时重新安装对应版本。
- 排查构建工具链变更:比如Azure DevOps构建代理、MSBuild是否被自动更新,新版本工具链可能改变包引用处理逻辑。可尝试回退到之前稳定的构建代理版本,或调整MSBuild参数强制使用兼容的包引用方式。
- 清理本地构建输出:删除项目的
bin/、obj/目录,重新触发构建,排除本地缓存导致的版本不兼容问题。
内容的提问来源于stack exchange,提问作者ree6
相关产品推荐
相关产品推荐

