.NET 7更新后dotnet watch run报错:无法加载System.Runtime程序集
解决.NET 7.0下
dotnet watch run抛出System.IO.FileNotFoundException的问题 以下是针对该问题的可行解决步骤:
检查并指定.NET SDK版本
运行dotnet --version确认当前CLI使用的SDK版本是否为7.0.x。如果版本不符,执行dotnet --list-sdks查看已安装的所有SDK版本,然后在项目根目录创建global.json文件,指定项目使用的7.0版本:{ "sdk": { "version": "7.0.xxx" // 替换为你安装的具体7.0版本号 } }保存后重新执行
dotnet watch run。清理项目缓存与依赖
删除项目目录下的bin和obj文件夹,依次执行以下命令:dotnet clean dotnet restore dotnet build完成后再尝试运行
dotnet watch run。修复.NET SDK安装
先卸载已有的.NET 7 SDK:- 安装.NET卸载工具:
dotnet tool install -g dotnet-core-uninstall - 运行
dotnet-core-uninstall list列出所有可卸载的.NET组件,找到7.0版本的SDK并卸载 - 重新下载并安装.NET 7.0 SDK,安装完成后重启终端再测试命令。
- 安装.NET卸载工具:
调整环境变量顺序
确保系统PATH环境变量中,.NET 7 SDK对应的dotnet.exe路径排在其他.NET版本路径之前:- Windows:打开系统属性-环境变量,在系统变量的
PATH中,将C:\Program Files\dotnet\下的7.0相关路径移至顶部 - Linux/macOS:编辑
~/.bashrc或~/.zshrc文件,调整PATH中dotnet路径的顺序,保存后执行source ~/.bashrc(或对应配置文件)生效。
- Windows:打开系统属性-环境变量,在系统变量的
排查启动钩子配置
错误日志涉及StartupHookProvider,检查系统环境变量中是否存在DOTNET_STARTUP_HOOKS,如果有,暂时移除该环境变量,再重新运行dotnet watch run测试。
内容的提问来源于stack exchange,提问作者Omer
相关产品推荐
相关产品推荐

