如何解决‘System.String.GetPathsOfAllDirectoriesAbove’方法未找到的问题?
问题描述
原本运行正常的项目,拉取最新代码后出现异常。使用Visual Studio 2017(无法更换开发环境),项目会自动卸载,尝试重新加载时弹出如下错误:
The expression ""AiHandleErrorAttribute.cs"".GetPathsOfAllDirectoriesAbove()"" cannot be evaluated. Method 'System.String.GetPathsOfAllDirectoriesAbove' not found. D:\Projects\packages\Microsoft.Net.Compilers.4.2.0\tools\Microsoft.Managed.Core.targets
项目自动卸载状态截图:
重新加载项目时的报错截图:
项目目标框架为**.NET Framework 4.8**。
解决方案
- 降低
Microsoft.Net.Compilers版本:VS2017对4.2.0版本兼容性不足,建议降级到3.8.1版本(VS2017支持的最高稳定版)。修改项目的packages.config或.csproj文件中对应包的版本号,再执行Update-Package -reinstall Microsoft.Net.Compilers命令重装。 - 清理NuGet缓存并还原:关闭VS,删除项目目录下的
packages文件夹;在NuGet包管理器中清理所有缓存,重新打开项目后右键选择还原NuGet包。 - 更新VS2017并检查MSBuild配置:确保VS2017更新到15.9.x及以上版本;右键项目→属性→生成,确认目标框架为
.NET Framework 4.8,MSBuild工具版本选择15.0。
内容的提问来源于stack exchange,提问作者Psychonaut007
相关产品推荐
相关产品推荐

