已安装.NET SDK和Runtime,dotnet watch run仍提示找不到框架
项目依赖与目标框架不匹配
你安装了.NET 8.0 SDK和.NETCore.App运行时,但Microsoft.AspNetCore.App是ASP.NET Core专属的共享框架,部分Linux包管理工具会将其与基础.NET运行时分开发布。检查项目的.csproj文件:<TargetFramework>net8.0</TargetFramework> <!-- 确认是否包含ASP.NET Core引用 --> <FrameworkReference Include="Microsoft.AspNetCore.App" />若项目依赖ASP.NET Core,但仅安装了基础.NET运行时,就会触发该错误。
dotnet run和dotnet publish能正常执行,可能是因为SDK自带了ASP.NET Core的构建依赖,但watch模式需要独立的ASP.NET Core共享框架支持。dotnet watch的版本上下文冲突
检查项目根目录是否存在global.json文件,该文件可能锁定了特定SDK版本,导致dotnet watch使用了未安装ASP.NET Core运行时的版本。比如:{ "sdk": { "version": "7.0.114" } }若项目实际针对.NET 8.0,但
global.json锁定了7.0版本,且7.0环境未安装ASP.NET Core运行时,就会报错。可删除该文件或修改版本为8.0.100后重试。Linux下运行时注册不完整
执行以下命令检查ASP.NET Core运行时是否正确安装:dotnet --list-runtimes若输出中没有
Microsoft.AspNetCore.App 8.0.0 [xxx]的条目,说明确实缺少该运行时。通过yay安装对应包即可,例如aspnetcore-runtime-8.0(具体包名可能随发行版略有不同)。dotnet watch缓存异常
watch模式可能残留旧缓存数据,导致运行时检测出错。尝试清理缓存后重试:dotnet clean rm -rf obj bin dotnet watch run
内容的提问来源于stack exchange,提问作者Wemerson Jesus

