Omnisharp-roslyn: MSBuild can not be found on Arch Linux

Created on 26 Sep 2019  Â·  42Comments  Â·  Source: OmniSharp/omnisharp-roslyn

Since yesterday I keep getting this error when omnisharp starts up in vscode (omnisharp is set to latest version):

[warn]: OmniSharp.MSBuild.Discovery.Providers.MonoInstanceProvider
        It looks like you have Mono 5.2.0 or greater installed but MSBuild could not be found.
Try installing MSBuild into Mono (e.g. 'sudo apt-get install msbuild') to enable better MSBuild support.

This used to work without issues before. I noticed that msbuild version was increased in a recent commit. Maybe that causes omnisharp to no longer find my msbuild on linux?

msbuild

Most helpful comment

Since you are on Arch, it's no surprise that MSBuild cannot find your .NET Core SDK: not only it's installed in non-standard location, but also /usr/bin/dotnet is not a symlink and DOTNET_ROOT is not globally exported. Try the following (multiple at the same time if necessary):

  • Replace /usr/bin/dotnet with a symlink to /opt/dotnet/dotnet
  • Create a file in /etc/profile.d, e.g. dotnet.sh, with the following content: export DOTNET_ROOT=/opt/dotnet (you might need to adapt this for some login shells, and make sure you relog afterwards)
  • Set UseLegacySdkResolver to true in your omnisharp.json

You could instead try exporting MSBuildSdksPath, but it's very prone to breakage and prevents you from using multiple SDK versions.

See here for some details on what I found about .NET Core packages in Arch.

All 42 comments

can you post the full log?

Starting OmniSharp server at 9/26/2019, 8:15:41 AM
    Target: /home/cobra/dev/AstroBotDev

OmniSharp server started with Mono 6.0.0.
    Path: /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.4-beta.7/omnisharp/OmniSharp.exe
    PID: 43271

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[warn]: OmniSharp.MSBuild.Discovery.Providers.MonoInstanceProvider
        It looks like you have Mono 5.2.0 or greater installed but MSBuild could not be found.
Try installing MSBuild into Mono (e.g. 'sudo apt-get install msbuild') to enable better MSBuild support.
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.0 - "/home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.4-beta.7/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to '/home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.4-beta.7/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.0 - "/home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.4-beta.7/omnisharp/.msbuild/Current/Bin"
            CscToolExe = csc.exe
            TargetFrameworkRootPath = /usr/lib/mono/xbuild-frameworks
            MSBuildToolsPath = /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.4-beta.7/omnisharp/.msbuild/Current/Bin
            CscToolPath = /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.4-beta.7/omnisharp/.msbuild/Current/Bin/Roslyn
            BypassFrameworkInstallChecks = true
            MSBuildExtensionsPath = /usr/lib/mono/xbuild
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in '/home/cobra/dev/AstroBotDev'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
        No solution files found in '/home/cobra/dev/AstroBotDev'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/cobra/dev/AstroBotDev/AwesomeChatBot.Discord/AwesomeChatBot.DiscordWrapper.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/cobra/dev/AstroBotDev/Astrobot/AstroBot/AstroBot.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/cobra/dev/AstroBotDev/Astrobot/AstroBot.Test/AstroBot.Test.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/cobra/dev/AstroBotDev/AwesomeChatBot/AwesomeChatBot/AwesomeChatBot.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in '/home/cobra/dev/AstroBotDev'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/cobra/dev/AstroBotDev/AwesomeChatBot.Discord/AwesomeChatBot.DiscordWrapper.csproj
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.EditorConfigWorkspaceOptionsProvider, Order: 200
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location '/home/cobra/dev/AstroBotDev' on host 42229.
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file '/home/cobra/dev/AstroBotDev/AwesomeChatBot.Discord/AwesomeChatBot.DiscordWrapper.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project '/home/cobra/dev/AstroBotDev/AwesomeChatBot.Discord/AwesomeChatBot.DiscordWrapper.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/cobra/dev/AstroBotDev/Astrobot/AstroBot/AstroBot.csproj
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file '/home/cobra/dev/AstroBotDev/Astrobot/AstroBot/AstroBot.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project '/home/cobra/dev/AstroBotDev/Astrobot/AstroBot/AstroBot.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/cobra/dev/AstroBotDev/Astrobot/AstroBot.Test/AstroBot.Test.csproj
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file '/home/cobra/dev/AstroBotDev/Astrobot/AstroBot.Test/AstroBot.Test.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project '/home/cobra/dev/AstroBotDev/Astrobot/AstroBot.Test/AstroBot.Test.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/cobra/dev/AstroBotDev/AwesomeChatBot/AwesomeChatBot/AwesomeChatBot.csproj
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file '/home/cobra/dev/AstroBotDev/AwesomeChatBot/AwesomeChatBot/AwesomeChatBot.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project '/home/cobra/dev/AstroBotDev/AwesomeChatBot/AwesomeChatBot/AwesomeChatBot.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: AwesomeChatBot.DiscordWrapper
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: AstroBot
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: AstroBot.Test
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: AwesomeChatBot
[info]: OmniSharp.Roslyn.CSharp.Services.Diagnostics.CSharpDiagnosticWorkerWithAnalyzers
        Solution initialized -> queue all documents for code analysis. Initial document count: 86.

dotnet --info output:

 cobra@ATLANTIS-SURFACE-ARCH  ~/dev/AstroBotDev                                                                08:16:51  Arc 
> dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.2.108
 Commit:    33ed5b90ce

Runtime Environment:
 OS Name:     arch
 OS Version:  
 OS Platform: Linux
 RID:         arch-x64
 Base Path:   /opt/dotnet/sdk/2.2.108/

Host (useful for support):
  Version: 2.2.6
  Commit:  7dac9b1b51

.NET Core SDKs installed:
  2.2.108 [/opt/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.NETCore.App 2.2.6 [/opt/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

(dotnet sdk IS installed)

Since you are on Arch, it's no surprise that MSBuild cannot find your .NET Core SDK: not only it's installed in non-standard location, but also /usr/bin/dotnet is not a symlink and DOTNET_ROOT is not globally exported. Try the following (multiple at the same time if necessary):

  • Replace /usr/bin/dotnet with a symlink to /opt/dotnet/dotnet
  • Create a file in /etc/profile.d, e.g. dotnet.sh, with the following content: export DOTNET_ROOT=/opt/dotnet (you might need to adapt this for some login shells, and make sure you relog afterwards)
  • Set UseLegacySdkResolver to true in your omnisharp.json

You could instead try exporting MSBuildSdksPath, but it's very prone to breakage and prevents you from using multiple SDK versions.

See here for some details on what I found about .NET Core packages in Arch.

I can try that later when I am home, however a few comments of the bat:

  • I am pretty sure /usr/bin/dotnet is already a symlink, since I don't have /opt/bin added to PATH and dotnet command works in console

    • I already have the following set in my bash profile:

      image

    • It used to work just fine like that for over a year, and it suddenly changed two days ago. How does your comment explain that it worked before?

  • I'm pretty sure that /usr/bin/dotnet is a shell script that execs /opt/dotnet/dotnet
  • As for why it used to work, well, you said it yourself: a few days ago OmniSharp updated its MSBuild to 16.3, which might have changed SDK resolution logic. So, you could also try reverting to an older version of omnisharp-roslyn and if it works without any other changes, then bisect can get us more info.

You could also try getting msbuild and msbuild-sdkresolver from AUR, as your error log suggests that OmniSharp attempts to load extensions from legacy xbuild instead.

That said. what I can assure you is that it can work, but in my case it's probably because I build my own mono, msbuild and omnisharp packages from source: https://pastebin.com/PZiJ8bBQ (although it's not very relevant here).

Just tried your suggestions, still does not work

Not even downgrading OmniSharp? If so, then I have no idea what else could be wrong with your setup, sorry.

I havent tried downgrading omnisharp though

EDIT: Will try that next

This should be fixed with the latest prerelease "omnisharp.path": "1.34.4-beta.34"

I can confirm it is working with older Version: Path: /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.3/omnisharp/OmniSharp.exe

(After removing "omnisharp.path": "latest", from the settings in vscode)

@filipw With the latest version I am still getting this a red omnisharp server icon in vscode:
image

Log:

Starting OmniSharp server at 10/1/2019, 8:53:05 AM
    Target: /home/cobra/dev/RegiPegi

OmniSharp server started with Mono 6.0.0.
    Path: /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.5-beta.6/omnisharp/OmniSharp.exe
    PID: 42792

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[warn]: OmniSharp.MSBuild.Discovery.Providers.MonoInstanceProvider
        It looks like you have Mono 5.2.0 or greater installed but MSBuild could not be found.
Try installing MSBuild into Mono (e.g. 'sudo apt-get install msbuild') to enable better MSBuild support.
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.0 - "/home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.5-beta.6/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to '/home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.5-beta.6/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.0 - "/home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.5-beta.6/omnisharp/.msbuild/Current/Bin"
            CscToolExe = csc.exe
            TargetFrameworkRootPath = /usr/lib/mono/xbuild-frameworks
            MSBuildToolsPath = /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.5-beta.6/omnisharp/.msbuild/Current/Bin
            CscToolPath = /home/cobra/.vscode/extensions/ms-vscode.csharp-1.21.3/.omnisharp/1.34.5-beta.6/omnisharp/.msbuild/Current/Bin/Roslyn
            BypassFrameworkInstallChecks = true
            MSBuildExtensionsPath = /usr/lib/mono/xbuild
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in '/home/cobra/dev/RegiPegi'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
        No solution files found in '/home/cobra/dev/RegiPegi'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/cobra/dev/RegiPegi/RegiPegi.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in '/home/cobra/dev/RegiPegi'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/cobra/dev/RegiPegi/RegiPegi.csproj
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.EditorConfigWorkspaceOptionsProvider, Order: 200
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location '/home/cobra/dev/RegiPegi' on host 10583.
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file '/home/cobra/dev/RegiPegi/RegiPegi.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project '/home/cobra/dev/RegiPegi/RegiPegi.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: RegiPegi
[info]: OmniSharp.Roslyn.CSharp.Services.Diagnostics.CSharpDiagnosticWorkerWithAnalyzers
        Solution initialized -> queue all documents for code analysis. Initial document count: 3.

can you upgrade mono to 6.4.0? looks like you have mono 6.0.0 but without msbuild.
even when omnisharp runs on embedded mono, it still uses global mono for the msbuild extension path and some other stuff

It seems the Arch linux package of mono is out of date and fixed to 6.0.0

Will compile it myself when I get time (mono is quite huge project to compile)

you could also check "omnisharp.useGlobalMono": "never"

Install msbuild-16-bin from AUR and latest mono from official repository as suggested here works for me.

@RononDex can you confirm @ultimaweapon comment works for you as well?

Install msbuild-16-bin from AUR and latest mono from official repository as suggested here works for me.

This worked for me as well.

@RononDex can you confirm @ultimaweapon comment works for you as well?

I will try that in a few hours

I installed the packages and it still does not work.

MsBuild outputs version 16.3.0-ci
mono shows version 6.0

UPDATE: dotnet run works if I am in my directory

Try this before build:

export MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks

For me it required this variable otherwise it will error.

@ultimaweapon I already have that one set:
image

Install msbuild-16-bin from AUR and latest mono from official repository as suggested here works for me.

This also helped me.

Install msbuild-16-bin from AUR and latest mono from official repository as suggested here works for me.

I simply removed the msbuild-stable that I had initially installed and then installed msbuild-16-bin and debugging started working again. Thanks, @ultimaweapon

  • /opt/dotnet/dotnet

Since you are on Arch, it's no surprise that MSBuild cannot find your .NET Core SDK: not only it's installed in non-standard location, but also /usr/bin/dotnet is not a symlink and DOTNET_ROOT is not globally exported. Try the following (multiple at the same time if necessary):

  • Replace /usr/bin/dotnet with a symlink to /opt/dotnet/dotnet
  • Create a file in /etc/profile.d, e.g. dotnet.sh, with the following content: export DOTNET_ROOT=/opt/dotnet (you might need to adapt this for some login shells, and make sure you relog afterwards)
  • Set UseLegacySdkResolver to true in your omnisharp.json

You _could_ instead try exporting MSBuildSdksPath, but it's very prone to breakage and prevents you from using multiple SDK versions.

See here for some details on what I found about .NET Core packages in Arch.

Worked for me without installing mono
Thanks!

I can confirm that @Saancreed's solution also worked for me without installing mono and msbuild-bin-16.

@notaduck what steps you did? I was tried DOTNET_ROOT but no luck.

@notaduck what steps you did? I was tried DOTNET_ROOT but no luck.

I removed /usr/bin/dotnet and replaced it with /opt/dotnet/dotnet

sudo ln -s /opt/dotnet/dotnet /usr/bin/dotnet

Nothing else :)

Thanks for info. I just updated to the latest version and the previous working solution for me does not works anymore due to it refuse to use installed MSBuild because Mono is 6.0.0. Here is the log:

OmniSharp server started with Mono 6.0.0.
    Path: /home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/OmniSharp.exe
    PID: 18201

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.Providers.MonoInstanceProvider
        Found Mono MSBuild but it could not be used because it is version 6.0.0 and it needs to be >= 6.4.0. OmniSharp will use embedded Mono instead. If you encounter any problems with OmniSharp, it is recommended to upgrade your Mono to the latest version. See https://www.mono-project.com/download/stable/.
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.3 - "/home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to '/home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.3 - "/home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin"
            CscToolExe = csc.exe
            TargetFrameworkRootPath = /usr/lib/mono/xbuild-frameworks
            MSBuildToolsPath = /home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin
            CscToolPath = /home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin/Roslyn
            BypassFrameworkInstallChecks = true
            MSBuildExtensionsPath = /usr/lib/mono/xbuild

No idea why it cannot find SDK:

  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download

Do you have mono installed?

On Wed, 6 Nov 2019, 07:16 Putta Khunchalee, notifications@github.com
wrote:

Thanks for info. I just updated to the latest version and the previous
working solution for me does not works anymore due to it refuse to use
installed MSBuild because Mono is 6.0.0. Here is the log:

OmniSharp server started with Mono 6.0.0.
Path: /home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/OmniSharp.exe
PID: 18201

[info]: OmniSharp.Stdio.Host
Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.Providers.MonoInstanceProvider
Found Mono MSBuild but it could not be used because it is version 6.0.0 and it needs to be >= 6.4.0. OmniSharp will use embedded Mono instead. If you encounter any problems with OmniSharp, it is recommended to upgrade your Mono to the latest version. See https://www.mono-project.com/download/stable/.
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 1 MSBuild instance(s)
1: StandAlone 16.3 - "/home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to '/home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: StandAlone 16.3 - "/home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin"
CscToolExe = csc.exe
TargetFrameworkRootPath = /usr/lib/mono/xbuild-frameworks
MSBuildToolsPath = /home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin
CscToolPath = /home/ultimaweapon/.vscode/extensions/ms-vscode.csharp-1.21.6/.omnisharp/1.34.6/omnisharp/.msbuild/Current/Bin/Roslyn
BypassFrameworkInstallChecks = true
MSBuildExtensionsPath = /usr/lib/mono/xbuild

No idea why it cannot find SDK:

It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/OmniSharp/omnisharp-roslyn/issues/1610?email_source=notifications&email_token=ACIED4C32VS2VQKFXYKLMH3QSJOM3A5CNFSM4I2VO65KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDFNARQ#issuecomment-550162502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACIED4GR6QBSCYXZGXN2243QSJOM3ANCNFSM4I2VO65A
.

Yes. But unfortunately on Arch there is only 6.0.0 but the latest OmniSharp required 6.4.0. I just manually setup the previous version of OmniSharp now everything works again. I think I will stick with this version until Arch roll out Mono 6.4.0.

Thanks.

Your welcome, however I'm on mono 6.0.0

On Wed, 6 Nov 2019, 10:07 Putta Khunchalee, notifications@github.com
wrote:

Yes. But unfortunately on Arch there is only 6.0.0 but the latest
OmniSharp required 6.4.0. I just manually setup the previous version of
OmniSharp now everything works again. I think I will stick with this
version until Arch roll out Mono 6.4.0.

Thanks.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/OmniSharp/omnisharp-roslyn/issues/1610?email_source=notifications&email_token=ACIED4B6P7JFHIPLHXK53BTQSKCMHA5CNFSM4I2VO65KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDFZ46Q#issuecomment-550215290,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACIED4DPARQB26SLNFQM5PDQSKCMJANCNFSM4I2VO65A
.

Yes. But unfortunately on Arch there is only 6.0.0 but the latest OmniSharp required 6.4.0. I just manually setup the previous version of OmniSharp now everything works again. I think I will stick with this version until Arch roll out Mono 6.4.0.

Thanks.

You can install mono-nightly from the AUR to have Mono 6.7

Thanks but I don't like to use the nightly version.

After installing mono-nightly it started working again

@Saancreed

Since you are on Arch, it's no surprise that MSBuild cannot find your .NET Core SDK: not only it's installed in non-standard location, but also /usr/bin/dotnet is not a symlink

Does /usr/bin/dotnet being a symlink have some special significance from the perspective of msbuild resolving the dotnet sdk? E.g. does it try to follow symlinks and then decide adjacent to wherever the actual binary is located is where it'll find the SDKs?

I'm exporting the DOTNET_ROOT variable, so it's not clear to me why tweaking the /usr/bin/dotnet script that's shipped with the arch linux package is necessary.

@masaeedu I vaguely recall seeing some piece of code that attempts to find first dotnet in $PATH and resolve it with realpath, but now that I tried to locate it again, I actually couldn't. So I might have been mistaken here, or something was changed in 3.1 and it's just no longer there. Anyway, source is available here, just in case you want to take a look.

I'm facing this issue. After installed msbuild-bin-16 the War goes away but the autocomplete still dont work.

I think this is fixed in 3.1.0.sdk100, but I'm not sure about 2.2.7.sdk109.
Ref: https://bugs.archlinux.org/task/60903

I have tested it installing the latest 3.1.0 sdk, runtime and host packages:

community/dotnet-sdk 3.1.0.sdk100-2
community/dotnet-runtime 3.1.0.sdk100-2
community/dotnet-host 3.1.0.sdk100-2

With the following fish env config (adapt as needed for bash):

set -x PATH ~/.dotnet/tools $PATH
set -x DOTNET_ROOT (dirname (readlink (command -v dotnet)))

And the OmniSharp server is runnning without issues, including autocomplete.

Edit

Be aware that it no longer installs to /opt/dotnet/, but to /usr/share/dotnet/, which now is where the /usr/sbin/dotnet symlink points to.

Because of the issues mentioned in this thread, I used to install this manually using the dotnet-install.sh script. I removed this installation prior testing.

Also, according to the wiki

You no longer need to set a DOTNET_ROOT variable as described in the solutions of various github issues. Arch's dotnet package (as of 3.1) installs it to the Microsoft recommended location of /usr/share/dotnet.

With the latest version you don't need to do anything special anymore. It will work out of the box. You don't even need to install msbuild-bin-16.

msbuild-16-bin

it was removed from AUR. Any idea why/what to use now?

You should not need to do anything special anymore. Just install the extension and it should work out of the box.

Was this page helpful?
0 / 5 - 0 ratings