由于我们所反对的第三方系统,我不得不使用.Net 2.1,直到最近它一直运行得很好。我在Fedora上开发了最新的更新和VSCode。这看起来类似于Could not locate MSBuild instance to register with OmniSharp,但是我收到了有关msbuild的警告,而这个问题并没有。
现在,当打开我的VSCode项目时,我得到了这个Omnisharp输出:
Starting OmniSharp server at 28/03/2022, 09:48:44
Target: /home/neek/workspace/LinnworksNetSDKProjects/PremierZenCartMacro/Linnworks/Examples/OrdersDashboard/dotnet/LinnworksNet-NativeModule-OrdersDashboard.sln
OmniSharp server started with Mono 6.12.0.
Path: /home/neek/.vscode/extensions/ms-dotnettools.csharp-1.24.1/.omnisharp/1.38.3-beta.31/omnisharp/OmniSharp.exe
PID: 8252
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.Cake, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.DotNetTest, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.Host, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.MSBuild, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.Roslyn, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.Roslyn.CSharp, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.Script, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[dbug]: OmniSharp.CompositionHostBuilder
Loaded OmniSharp.Shared, Version=1.38.0.0, Culture=neutral, PublicKeyToken=7e5bf7b3b470b509
[info]: OmniSharp.Stdio.Host
Starting OmniSharp on fedora 35.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
Checking the 'DOTNET_ROOT' environment variable to find a .NET SDK
[info]: OmniSharp.Services.DotNetCliService
DotNetPath set to /home/neek/dotnet/dotnet
[dbug]: OmniSharp.CompositionHostBuilder
.NET SDK requires MSBuild instances version 16.0.0 or higher
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 0 MSBuild instance(s)
Could not locate MSBuild instance to register with OmniSharp.
[ERROR] Error: OmniSharp server load timed out. Use the 'omnisharp.projectLoadTimeout' setting to override the default delay (one minute).
它声称是.NET SDK requires MSBuild instances version 16.0.0 or higher
,但我认为这是安装的:
$ dotnet msbuild -h
Microsoft (R) Build Engine version 16.2.37902+b5aaefc9f for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
dotnet是在我的主目录下手动安装的,并按照安装说明添加到$PATH
中:
$ which dotnet
~/dotnet/dotnet
可能与https://github.com/OmniSharp/omnisharp-vscode/issues/5120有关,在那里他们谈论omnisharp.useModernNet
。在我的VSCode设置UI中,我可以看到‘使用现代网络’是错误的,我认为这是正确的,因为我不想使用‘现代’.Net,我必须使用2.1SDK。
如果我将useModernNet设置为true,那么omnisharp似乎会下载.Net 6包:
Installing C# dependencies...
Platform: linux, x86_64, name=fedora, version=35
Downloading package 'OmniSharp for Linux (.NET 6 / x64)' (39471 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package 'OmniSharp for Linux (.NET 6 / x64)'
Finished
Getting latest OmniSharp version information
Downloading package 'Latest OmniSharp Version Information' (1 KB).................... Done!
然后我可以运行'build‘命令(我的tasks.json
将command
指定为/home/neek/dotnet/dotnet
),它似乎正常编译。
当我的代码实际上希望使用安装的2.1SDK编译时,告诉Omnisharp使用.Net 6是错误的?我是否应该关闭useModernNet
,如果是的话,如何修复Omnisharp关于找不到msbuild的错误?
发布于 2022-05-13 07:18:11
通过设置以下内容来删除msbuild错误:
"omnisharp.path": ""
通过设置以下内容,使用较新的.NET 6.0版本的OmniSharp (与代码和目标框架无关):
"omnisharp.useModernNet": true
https://stackoverflow.com/questions/71642079
复制相似问题