Skip to content

The reference assemblies for .NETFramwork.Version not found since Omnisharp upgrade #1839

@puremourning

Description

@puremourning

Hi there,

I maintain YouCompeteMe, a code completion server which uses omnisharp roslyn to provide c# semantic ananalysis.

We recently upgraded the bundled omnisharp from v1.34.2 to v1.35.3 and we noticed some regression test failures. We put that down to our misunderstanding, but I have since realised that it is due to a change in behaviour.

Our test project continuing the solution file and the project file is here: https://github.com/ycm-core/ycmd/tree/master/ycmd/tests/cs/testdata/testy

With v1.34.2 we get the following (successful) output:


[40m[32minfo[39m[22m[49m: OmniSharp.Services.DotNetCliService[0]
      DotNetPath set to dotnet
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      Located 1 MSBuild instance(s)
                  1: StandAlone 16.0 - "/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      MSBUILD_EXE_PATH environment variable set to '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      Registered MSBuild instance: StandAlone 16.0 - "/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
                  MSBuildExtensionsPath = /Library/Frameworks/Mono.framework/Versions/6.4.0/lib/mono/xbuild
                  BypassFrameworkInstallChecks = true
                  CscToolPath = /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/Roslyn
                  CscToolExe = csc.exe
                  MSBuildToolsPath = /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin
                  TargetFrameworkRooTargetFrameworkRootPathtPath = /Library/Frameworks/Mono.framework/Versions/6.4.0/lib/mono/xbuild-frameworks
[40m[32minfo[39m[22m[49m: OmniSharp.Http.Startup[0]
      Starting OmniSharp on MacOS 10.15.5 (x64)
[40m[32minfo[39m[22m[49m: OmniSharp.Cake.CakeProjectSystem[0]
      Detecting Cake files in '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy'.
[40m[32minfo[39m[22m[49m: OmniSharp.Cake.CakeProjectSystem[0]
      Could not find any Cake files
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectSystem[0]
      Detecting projects in '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.sln'.
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectManager[0]
      Queue project update for '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.csproj'
[40m[32minfo[39m[22m[49m: OmniSharp.Script.ScriptProjectSystem[0]
      Detecting CSX files in '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy'.
[40m[32minfo[39m[22m[49m: OmniSharp.Script.ScriptProjectSystem[0]
      Could not find any CSX files
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectManager[0]
      Loading project: /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.csproj
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.EditorConfigWorkspaceOptionsProvider, Order: 200
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Configuration finished.
[40m[32minfo[39m[22m[49m: OmniSharp.Http.Startup[0]
      Omnisharp server running on port '56398' at location '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy' on host -1.
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectManager[0]
      Successfully loaded project file '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.csproj'.

However with the only change being to upgrade to v1.35.3, we get the following error, and semantic analysis is constrained to the current file:

[40m[32minfo[39m[22m[49m: OmniSharp.Services.DotNetCliService[0]
      DotNetPath set to dotnet
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      Located 1 MSBuild instance(s)
                  1: StandAlone 16.4 - "/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      MSBUILD_EXE_PATH environment variable set to '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      Registered MSBuild instance: StandAlone 16.4 - "/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
                  CscToolExe = csc.exe
                  MSBuildToolsPath = /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin
                  CscToolPath = /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/Roslyn
                  BypassFrameworkInstallChecks = true
                  MSBuildExtensionsPath = /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/omnisharp-roslyn/omnisharp/.msbuild
[40m[32minfo[39m[22m[49m: OmniSharp.Http.Startup[0]
      Starting OmniSharp on MacOS 10.15.5 (x64)
[40m[32minfo[39m[22m[49m: OmniSharp.Cake.CakeProjectSystem[0]
      Detecting Cake files in '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy'.
[40m[32minfo[39m[22m[49m: OmniSharp.Cake.CakeProjectSystem[0]
      Could not find any Cake files
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectSystem[0]
      Detecting projects in '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.sln'.
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectManager[0]
      Queue project update for '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.csproj'
[40m[32minfo[39m[22m[49m: OmniSharp.Script.ScriptProjectSystem[0]
      Detecting CSX files in '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy'.
[40m[32minfo[39m[22m[49m: OmniSharp.Script.ScriptProjectSystem[0]
      Could not find any CSX files
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[40m[32minfo[39m[22m[49m: OmniSharp.MSBuild.ProjectManager[0]
      Loading project: /Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy/testy.csproj
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140
[40m[32minfo[39m[22m[49m: OmniSharp.WorkspaceInitializer[0]
      Configuration finished.
[40m[32minfo[39m[22m[49m: OmniSharp.Http.Startup[0]
      Omnisharp server running on port '56483' at location '/Users/ben/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy' on host -1.
[41m[30mfail[39m[22m[49m: OmniSharp.MSBuild.ProjectLoader[0]
      The reference assemblies for .NETFramework,Version=v4.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

I saw on a few other issues that there's an environment variable that can be set to override the framework location, but I can't ask my users to set that it seems like a regression.

Is there something we're missing? Is there a resolution that doesn't involve a change in all users' environments?

OS: MacOS, Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions