You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下VS Code无法识别.NET 6,无法编译运行应用

解决VS Code无法识别.NET 6的问题

问题现象

在Ubuntu 20.04环境下使用VS Code和.NET 6加载项目时,出现以下错误:

[fail]: OmniSharp.MSBuild.ProjectLoader
        The reference assemblies for ".NETFramework,Version=v6.0" were not found. You might be using an older .NET SDK to target .NET 5.0 or higher. Update Visual Studio and/or your .NET SDK.
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file '/home/one/github/ion/Migration/Tests/Migrator.Tests/Migrator.Tests.csproj'.
/home/one/github/ion/GCPMigration/Tests/AwsMigrator.Tests/Migrator.Tests.csproj
/usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(1232,5): Error: The reference assemblies for ".NETFramework,Version=v6.0" were not found. You might be using an older .NET SDK to target .NET 5.0 or higher. Update Visual Studio and/or your .NET SDK.

同时VS Code界面中没有Generate C# assets for Build and Debug选项。

已尝试操作

  • 确认.NET 6 SDK已安装:
% dotnet --list-sdks
3.1.424 [/usr/share/dotnet/sdk]
6.0.405 [/usr/share/dotnet/sdk]
  • 在项目根目录创建global.json指定SDK版本:
{
    "sdk": {
      "version": "6.0.405"
    }
}
  • 重启VS Code,但问题未解决。

补充环境信息

已安装的VS Code扩展

% code --list-extensions --show-versions
jmrog.vscode-nuget-package-manager@1.1.6
ms-dotnettools.csharp@1.25.4

.NET环境详情

% dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.405
 Commit:    27ab36058b

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         ubuntu.20.04-x64
 Base Path:   /usr/share/dotnet/sdk/6.0.405/

global.json file:
  /home/one/github/ion/Migration/Migrator/global.json

Host:
  Version:      6.0.13
  Architecture: x64
  Commit:       1af80ba017

.NET SDKs installed:
  3.1.424 [/usr/share/dotnet/sdk]
  6.0.405 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.13 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.30 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.13 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

VS Code进程关键片段

从code -s输出中发现,OmniSharp正在使用Mono的MSBuild:

mono --assembly-loader=strict /home/one/.vscode/extensions/ms-dotnettools.csharp-1.25.4-linux-x64/.omnisharp/1.39.4/omnisharp/OmniSharp.exe ...

解决方案

1. 更新C#扩展到最新版本

当前使用的ms-dotnettools.csharp@1.25.4版本较旧,对.NET 6支持不完善。打开VS Code扩展面板,找到**C#**扩展,点击更新到最新版。

2. 配置OmniSharp使用.NET SDK内置的MSBuild

打开VS Code设置(快捷键Ctrl+,),搜索omnisharp.useModernNet并勾选该选项;或者直接在settings.json中添加:

"omnisharp.useModernNet": true

该配置会让OmniSharp使用.NET SDK自带的MSBuild,而非不支持.NET 6的Mono版本。

3. 重启VS Code并验证

完全关闭VS Code后重新打开,等待OmniSharp加载完成。通过输出面板选择OmniSharp日志,查看是否使用了正确的MSBuild路径,例如:

Using MSBuild from /usr/share/dotnet/sdk/6.0.405/

4. 检查项目文件目标框架

确保.csproj文件中的TargetFramework设置为net6.0,示例:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
</Project>

完成以上步骤后,项目应能正常加载,且会出现Generate C# assets for Build and Debug选项。

内容的提问来源于stack exchange,提问作者dman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:11:10