Mac 上的 VS 代码:类型 'Attribute' 在未引用的程序集中定义



不确定是我的VS代码设置中的问题还是 in.NET。

在Mac上长时间不使用.NET后,我安装了最新版本。

dotnet --info

提交: 7feb845744 运行时环境:  操作系统名称:Mac OS X  操作系统版本:10.15  操作系统平台:达尔文  RID: osx.10.15-x64  基本路径:/usr/local/share/dotnet/sdk/3.1.301/主机(对支持有用(: 版本: 3.1.5 提交: 65cd789777 已安装的 .NET Core SDK: 1.0.0-preview2.1-003155 [/usr/local/share/dotnet/sdk] 1.0.0-preview2-003131 [/usr/local/share/dotnet/sdk] 1.0.0-preview2-003148 [/usr/local/share/dotnet/sdk] 1.0.3 [/usr/local/share/dotnet/sdk] 2.0.0 [/usr/local/share/dotnet/sdk] 2.1.4 [/usr/local/share/dotnet/sdk] 2.1.200 [/usr/local/share/dotnet/sdk] 2.1.301 [/usr/local/share/dotnet/sdk] 2.1.500 [/usr/local/share/dotnet/sdk] 3.1.301 [/usr/local/share/dotnet/sdk] 已安装的 .NET Core 运行时: Microsoft.AspNetCore.All 2.1.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All] Microsoft.AspNetCore.All 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 1.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 1.0.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 1.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 1.1.0-preview1-001100-00 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 1.1.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

然后我运行了:

dotnet new xunit -o leetcode
cd leetcode
code .

这将启动 VS 代码。我打开单元测试示例,看到[Fact]突出显示为错误:"类型'属性'是在未引用的程序集中定义的。必须添加对程序集"netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"的引用。[leetcode]">

另一个问题指向~/nuget/packages/microsoft.net.test.sdk/16.5.0/build/netcoreapp2.1。相同的文本"类型'属性'是在未引用的程序集中定义的。必须添加对程序集"netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"的引用。[leetcode]">

dotnet bulddotnet testdotnet restore工作正常,但在 VS Code 中看到这些错误很烦人。

我怀疑原因是一些基本的路径值或旧的 .NET 运行时。我想了解的是调试和解决此类问题的正确方法是什么。该项目实际上是<TargetFramework>netcoreapp3.1</TargetFramework>.将其更改为<TargetFramework>netcoreapp2.0</TargetFramework>看起来是错误的,也无济于事。

提前谢谢你!

我向 omnisharp-vscode 报告了一个问题,并得到了快速的回复,解决了我的问题。问题似乎出在通过酿造安装的 Mono 中。 提出了两种解决方案:

  1. 从官方来源安装单声道 https://www.mono-project.com/download/stable/
  2. 添加设置"omnisharp.useGlobalMono": "never",

我尝试了第二个,它解决了问题。

附言感谢 @lex-li 在 GitHub 上创建错误的建议。

最新更新