已安装.NET 6时,ASP.NET 7.0.100-preview7调试功能失效求助
ASP.NET Core 7调试失败,提示缺少指定框架版本
我能通过dotnet watch正常启动ASP.NET Core 7应用,但调试时弹出以下错误:
/home/timmy/Repos/myaspnetapp/src/Application/bin/Debug/net7.0/Application You must install or update .NET to run this application. App: /home/timmy/Repos/myaspnetapp/src/Application/bin/Debug/net7.0/BlazorDebugProxy/BrowserDebugHost.dll Architecture: x64 Framework: 'Microsoft.AspNetCore.App', version '7.0.0-preview.5.22303.8' (x64) .NET location: /usr/lib/dotnet/dotnet6-6.0.108/ The following frameworks were found: 6.0.8 at [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.AspNetCore.App]
补充信息
- 系统:Ubuntu 22.04,使用Rider 2022.2.1,VS Code也出现相同问题,排除IDE自身问题
- .NET 6安装路径:
/usr/lib/dotnet/dotnet6-6.0.108 - 曾尝试在多个不同目录安装.NET 7,问题未解决
- Rider配置:已将“.NET CLI可执行文件路径”设置为
/usr/lib/dotnet/dotnet7-7.0.100/dotnet,MSBuild路径指向该文件夹下的sdk子目录 - .NET 7控制台项目调试正常,仅ASP.NET Core项目出现调试失败问题
解决方案
确认并安装指定版本的运行时
错误提示明确需要7.0.0-preview.5.22303.8版本的Microsoft.AspNetCore.App运行时,当前系统仅存在.NET 6运行时。执行dotnet --list-runtimes检查是否已安装该预览版运行时,若未安装,需手动下载对应版本的ASP.NET Core预览版运行时安装。修正.NET环境变量优先级
系统可能默认指向了.NET 6的目录,导致调试时调用了错误的.NET版本。编辑~/.bashrc(或~/.zshrc,根据你使用的shell),添加以下内容:export DOTNET_ROOT=/usr/lib/dotnet/dotnet7-7.0.100 export PATH=$DOTNET_ROOT:$PATH执行
source ~/.bashrc使配置生效,再运行dotnet --version确认当前使用的是.NET 7。清理调试代理文件
删除项目目录下的bin/Debug/net7.0/BlazorDebugProxy文件夹,重新生成项目后再尝试调试,避免旧的预览版代理文件导致冲突。检查项目文件的框架配置
打开项目的.csproj文件,确认是否指定了预览版的运行时版本:<TargetFramework>net7.0</TargetFramework> <!-- 若存在以下行,注释或修改为正式版7.0.0 --> <!-- <RuntimeFrameworkVersion>7.0.0-preview.5.22303.8</RuntimeFrameworkVersion> -->移除或修正指定预览版版本的配置项,让项目使用正式版.NET 7运行时。
卸载.NET 6(最终尝试)
若以上方法均无效,可尝试卸载.NET 6消除版本冲突:sudo apt remove dotnet-sdk-6.0 sudo apt autoremove卸载完成后重新配置.NET 7环境变量,再测试ASP.NET Core项目的调试功能。
内容的提问来源于stack exchange,提问作者TimB
相关产品推荐
相关产品推荐

