在 Ubuntu 20.04 VSCode 中尝试 运行 一个 Hello World 项目时出现 Omnisharp 问题
Omnisharp issue while trying to run a Hello World Project in VSCode on Ubuntu 20.04
我正在尝试让 .Net 和 VSCode 在 Ubuntu 20.04 上工作。 “dotnet 运行”命令 运行 程序正常,但是 运行 在 VSCode 中使用它会给我以下错误:
Starting OmniSharp server at 7/7/2020, 6:28:24 PM
Target: /home/ivlatin2012/Projects/HelloDotnetCore
OmniSharp server started with Mono 6.8.0.
Path: /home/ivlatin2012/.vscode/extensions/ms-dotnettools.csharp-1.22.1/.omnisharp/1.35.3/omnisharp/OmniSharp.exe
PID: 14939
System.TypeLoadException: Could not load type of field 'McMaster.Extensions.CommandLineUtils.CommandLineApplication:_validationErrorHandler' (36) due to: Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
at OmniSharp.Stdio.StdioCommandLineApplication..ctor () [0x00000] in <11f4106bfdfd41759d0a0dc35f30dcd7>:0
at OmniSharp.Stdio.Driver.Program+<>c__DisplayClass0_0.<Main>b__0 () [0x00006] in <be19315b4efc4538b70abd1dc15c63a1>:0
at OmniSharp.HostHelpers.Start (System.Func`1[TResult] action) [0x0001c] in <a3beccf5923c417282767eebc9bf25e1>:0
我运行宁
的Program.cs文件真的没什么
using System;
namespace HelloDotnetCore
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
launch.json 文件如下所示:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
},
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"console": "internalConsole"
}
],
]
}
.csproj 文件如下所示
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
</Project>
任何帮助将不胜感激。在过去的几年里,我一直远离任何 .Net,并且对 .Net Core 完全陌生。这是我试图遵循的 Pluralsight class 的一部分,但被 VSCode 和 Omnisharp 困住了。
我唯一能找到的就是这个
您可以尝试添加设置:"omnisharp.useGlobalMono": never
看看是否适合您。
对我来说,以下步骤有效:
- 转到 C# 扩展设置
- 设置 Omnisharp:使用全局单声道为“从不”
picture example
我正在尝试让 .Net 和 VSCode 在 Ubuntu 20.04 上工作。 “dotnet 运行”命令 运行 程序正常,但是 运行 在 VSCode 中使用它会给我以下错误:
Starting OmniSharp server at 7/7/2020, 6:28:24 PM
Target: /home/ivlatin2012/Projects/HelloDotnetCore
OmniSharp server started with Mono 6.8.0.
Path: /home/ivlatin2012/.vscode/extensions/ms-dotnettools.csharp-1.22.1/.omnisharp/1.35.3/omnisharp/OmniSharp.exe
PID: 14939
System.TypeLoadException: Could not load type of field 'McMaster.Extensions.CommandLineUtils.CommandLineApplication:_validationErrorHandler' (36) due to: Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
at OmniSharp.Stdio.StdioCommandLineApplication..ctor () [0x00000] in <11f4106bfdfd41759d0a0dc35f30dcd7>:0
at OmniSharp.Stdio.Driver.Program+<>c__DisplayClass0_0.<Main>b__0 () [0x00006] in <be19315b4efc4538b70abd1dc15c63a1>:0
at OmniSharp.HostHelpers.Start (System.Func`1[TResult] action) [0x0001c] in <a3beccf5923c417282767eebc9bf25e1>:0
我运行宁
的Program.cs文件真的没什么using System;
namespace HelloDotnetCore
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
launch.json 文件如下所示:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
},
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"console": "internalConsole"
}
],
]
}
.csproj 文件如下所示
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
</Project>
任何帮助将不胜感激。在过去的几年里,我一直远离任何 .Net,并且对 .Net Core 完全陌生。这是我试图遵循的 Pluralsight class 的一部分,但被 VSCode 和 Omnisharp 困住了。
我唯一能找到的就是这个
您可以尝试添加设置:"omnisharp.useGlobalMono": never
看看是否适合您。
对我来说,以下步骤有效:
- 转到 C# 扩展设置
- 设置 Omnisharp:使用全局单声道为“从不”
picture example