Mac 上的 VS Code:“属性”类型是在未引用的程序集中定义的
Posted
技术标签:
【中文标题】Mac 上的 VS Code:“属性”类型是在未引用的程序集中定义的【英文标题】:VS Code on Mac: The type 'Attribute' is defined in an assembly that is not referenced 【发布时间】:2020-10-17 08:49:06 【问题描述】:不确定是我的 VS Code 设置还是 .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 Code。我打开单元测试示例,看到[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 buld
、dotnet test
、dotnet restore
工作正常,但在 VS Code 中看到这些错误很烦人。
我怀疑原因是一些基本路径值或旧的 .NET 运行时。我想了解的是调试和解决此类问题的正确方法是什么。该项目实际上是<TargetFramework>netcoreapp3.1</TargetFramework>
。将其更改为 <TargetFramework>netcoreapp2.0</TargetFramework>
看起来是错误的并且没有帮助。
提前谢谢你!
【问题讨论】:
向扩展开发者报告,github.com/OmniSharp/omnisharp-vscode/issues 【参考方案1】:我向omnisharp-vscode 报告了issue,并得到了快速响应,解决了我的问题。问题似乎出在通过 brew 安装的 Mono 中。 提出了两种解决方案:
-
从官方源https://www.mono-project.com/download/stable/安装Mono
添加设置
"omnisharp.useGlobalMono": "never",
我尝试了第二个,它解决了问题。
附:感谢@lex-li 提供在 GitHub 上创建错误的建议。
【讨论】:
以上是关于Mac 上的 VS Code:“属性”类型是在未引用的程序集中定义的的主要内容,如果未能解决你的问题,请参考以下文章
VS Code 中的 Vue Array Prop JSDoc TypeScript 错误:“ArrayConstructor”类型缺少“MyCustomType []”类型中的以下属性
VS Code 上的错误,但 Dartpad 上没有。 - 字段 'percent' 应该被初始化,因为它的类型 'double' 不允许为空
使用VS Code配合Remote Development插件连接远程服务器(Mac/Linux+Windows) | Using VS Code with Remote Development Co