VS Code中出现.NET location: Not found错误的排查求助
问题
通过官方Shell脚本安装.NET SDK(版本8.0.407),并配置了DOTNET_ROOT环境变量,执行dotnet --info显示配置正常:
.NET SDK: Version: 8.0.407 Commit: cac65f27eb Workload version: 8.0.400-manifests.20e9918b MSBuild version: 17.11.26+2b19be476 런타임 환경: OS Name: endeavouros OS Version: OS Platform: Linux RID: linux-x64 Base Path: /home/username/.dotnet/sdk/8.0.407/ 설치된 .NET 워크로드: 새 매니페스트를 설치할 때 loose manifests을(를) 사용하도록 구성됩니다. 표시할 설치된 워크로드가 없습니다. Host: Version: 8.0.14 Architecture: x64 Commit: 1584e49360 .NET SDKs installed: 8.0.407 [/home/username/.dotnet/sdk] .NET runtimes installed: Microsoft.AspNetCore.App 8.0.14 [/home/username/.dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.14 [/home/username/.dotnet/shared/Microsoft.NETCore.App] Other architectures found: None Environment variables: DOTNET_ROOT [/home/username/.dotnet] global.json file: Not found
但在VS Code中构建并运行程序时,出现以下错误:
You must install .NET to run this application. App: /home/username/VSC/LibTest/bin/Debug/net8.0/LibTest Architecture: x64 App host version: 8.0.14 .NET location: Not found
已查阅相关问题,路径配置看似正确,询问设置是否存在问题。
排查与解决步骤
检查VS Code的环境变量继承
终端配置的环境变量可能未被VS Code继承。关闭所有VS Code窗口,从已配置好DOTNET_ROOT的终端执行code .启动VS Code,再尝试运行程序。确认
PATH包含.NET二进制目录
仅配置DOTNET_ROOT不够,需确保PATH包含.dotnet目录和工具目录。执行echo $PATH查看是否存在/home/username/.dotnet,若没有,在shell配置文件(如~/.bashrc、~/.zshrc)中添加:export DOTNET_ROOT=/home/username/.dotnet export PATH=$DOTNET_ROOT:$DOTNET_ROOT/tools:$PATH执行
source ~/.bashrc(对应你的shell配置文件)使配置生效,重启终端和VS Code。检查VS Code的.NET扩展路径配置
打开VS Code设置(快捷键Ctrl+,),搜索.NET: Dotnet Path,确认路径设为/home/username/.dotnet/dotnet。若为空,手动填写后重启VS Code。验证项目目标框架匹配
查看项目.csproj文件,确认TargetFramework为net8.0,与已安装的运行时版本一致:<TargetFramework>net8.0</TargetFramework>若不匹配,修改后重新构建。
清理重建项目
进入项目目录,执行以下命令清理并重建:dotnet clean dotnet restore dotnet build完成后再在VS Code中运行程序。
内容的提问来源于stack exchange,提问作者DaybreakFlower

