dotnet / vscode-csharp

Official C# support for Visual Studio Code
MIT License
2.84k stars 663 forks source link

Doesn't load SDK (installed with asdf) properly #4582

Open melkio opened 3 years ago

melkio commented 3 years ago

Environment data

dotnet --info output:

.NET SDK (reflecting any global.json):
 Version:   5.0.300
 Commit:    2e0c8c940e

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.15
 OS Platform: Darwin
 RID:         osx.10.15-x64
 Base Path:   /Users/melkio/.asdf/installs/dotnet-core/5.0.300/sdk/5.0.300/

Host (useful for support):
  Version: 5.0.6
  Commit:  478b2f8c0e

.NET SDKs installed:
  5.0.300 [/Users/melkio/.asdf/installs/dotnet-core/5.0.300/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.6 [/Users/melkio/.asdf/installs/dotnet-core/5.0.300/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.6 [/Users/melkio/.asdf/installs/dotnet-core/5.0.300/shared/Microsoft.NETCore.App]

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

VS Code version: 1.56.2 C# Extension version: 1.23.12

OmniSharp log

Starting OmniSharp server at 5/30/2021, 8:46:11 AM
    Target: /Users/melkio/dev/playground/omnisharp-roslyn/OmniSharp.sln

OmniSharp server started.
    Path: /Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/run
    PID: 68380

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on MacOS 10.15.7 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.11.0 - "/Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to '/Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/omnisharp/.msbuild/Current/Bin/MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.11.0 - "/Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/omnisharp/.msbuild/Current/Bin"
            CscToolExe = csc.exe
            MSBuildToolsPath = /Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/omnisharp/.msbuild/Current/Bin
            CscToolPath = /Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/omnisharp/.msbuild/Current/Bin/Roslyn
            BypassFrameworkInstallChecks = true
            MSBuildExtensionsPath = /Users/melkio/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/omnisharp/.msbuild
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0
[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.ImplementTypeWorkspaceOptionsProvider, Order: 110
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in '/Users/melkio/dev/playground/omnisharp-roslyn'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Found 10 Cake files.
[warn]: OmniSharp.Cake.CakeProjectSystem
        Could not initialize Cake script service. Aborting.
[info]: OmniSharp.MSBuild.ProjectSystem
        Detecting projects in '/Users/melkio/dev/playground/omnisharp-roslyn/OmniSharp.sln'.
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Tests/OmniSharp.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Stdio/OmniSharp.Stdio.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Stdio.Tests/OmniSharp.Stdio.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Abstractions/OmniSharp.Abstractions.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Roslyn.CSharp/OmniSharp.Roslyn.CSharp.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Roslyn/OmniSharp.Roslyn.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.MSBuild/OmniSharp.MSBuild.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Script/OmniSharp.Script.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.MSBuild.Tests/OmniSharp.MSBuild.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Roslyn.CSharp.Tests/OmniSharp.Roslyn.CSharp.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Host/OmniSharp.Host.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/TestUtility/TestUtility.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.DotNetTest/OmniSharp.DotNetTest.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.DotNetTest.Tests/OmniSharp.DotNetTest.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Http/OmniSharp.Http.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Http.Tests/OmniSharp.Http.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.LanguageServerProtocol/OmniSharp.LanguageServerProtocol.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Cake/OmniSharp.Cake.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Cake.Tests/OmniSharp.Cake.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Http.Driver/OmniSharp.Http.Driver.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Script.Tests/OmniSharp.Script.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Shared/OmniSharp.Shared.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Lsp.Tests/OmniSharp.Lsp.Tests.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/Users/melkio/dev/playground/omnisharp-roslyn/src/OmniSharp.Benchmarks/OmniSharp.Benchmarks.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in '/Users/melkio/dev/playground/omnisharp-roslyn'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Found 6 CSX files.
[info]: OmniSharp.Script.ScriptContextProvider
        Searching for compilation dependencies with the fallback framework of 'netcoreapp3.1'.
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Tests/OmniSharp.Tests.csproj
A compatible installed .NET SDK for global.json version [5.0.300] from [/Users/melkio/dev/playground/omnisharp-roslyn/global.json] was not found.
Install the [5.0.300] .NET SDK or update [/Users/melkio/dev/playground/omnisharp-roslyn/global.json] with an installed .NET SDK:
  It was not possible to find any installed .NET SDKs.
Install a .NET SDK from:
  https://aka.ms/dotnet-download
A compatible installed .NET SDK for global.json version [5.0.300] from [/Users/melkio/dev/playground/omnisharp-roslyn/global.json] was not found.
Install the [5.0.300] .NET SDK or update [/Users/melkio/dev/playground/omnisharp-roslyn/global.json] with an installed .NET SDK:
  It was not possible to find any installed .NET SDKs.
Install a .NET SDK from:
  https://aka.ms/dotnet-download
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file '/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Tests/OmniSharp.Tests.csproj'.
/Users/melkio/dev/playground/omnisharp-roslyn/tests/OmniSharp.Tests/OmniSharp.Tests.csproj(0,0)
Microsoft.Build.Exceptions.InvalidProjectFileException: The SDK 'Microsoft.NET.SDK.WorkloadAutoImportPropsLocator' specified could not be found.  /Users/melkio/.asdf/installs/dotnet-core/5.0.300/sdk/5.0.300/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props
  at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject (System.String errorSubCategoryResourceName, Microsoft.Build.Shared.IElementLocation elementLocation, System.String resourceName, System.Object[] args) [0x00040] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Shared.ProjectErrorUtilities.VerifyThrowInvalidProject[T1] (System.Boolean condition, System.String errorSubCategoryResourceName, Microsoft.Build.Shared.IElementLocation elementLocation, System.String resourceName, T1 arg0) [0x00003] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject[T1] (Microsoft.Build.Shared.IElementLocation elementLocation, System.String resourceName, T1 arg0) [0x00000] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].ExpandAndLoadImportsFromUnescapedImportExpressionConditioned (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement, System.Collections.Generic.List`1[Microsoft.Build.Construction.ProjectRootElement]& projects, Microsoft.Build.BackEnd.SdkResolution.SdkResult& sdkResult, System.Boolean throwOnFileNotExistsError) [0x0031e] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].ExpandAndLoadImports (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement, Microsoft.Build.BackEnd.SdkResolution.SdkResult& sdkResult) [0x00027] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x0000d] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0023b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x0003b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0023b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x0003b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0023b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x0003b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x000e6] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].Evaluate () [0x0013b] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].Evaluate (Microsoft.Build.Evaluation.IEvaluatorData`4[P,I,M,D] data, Microsoft.Build.Construction.ProjectRootElement root, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, System.Int32 maxNodeCount, Microsoft.Build.Collections.PropertyDictionary`1[T] environmentProperties, Microsoft.Build.BackEnd.Logging.ILoggingService loggingService, Microsoft.Build.Evaluation.IItemFactory`2[S,T] itemFactory, Microsoft.Build.Evaluation.IToolsetProvider toolsetProvider, Microsoft.Build.Evaluation.ProjectRootElementCacheBase projectRootElementCache, Microsoft.Build.Framework.BuildEventContext buildEventContext, Microsoft.Build.BackEnd.SdkResolution.ISdkResolverService sdkResolverService, System.Int32 submissionId, Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext, System.Boolean interactive) [0x00047] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project+ProjectImpl.Reevaluate (Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext) [0x00063] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project+ProjectImpl.ReevaluateIfNecessary (Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext) [0x00035] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project+ProjectImpl.ReevaluateIfNecessary (Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation, Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext) [0x00000] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project+ProjectImpl.ReevaluateIfNecessary (Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext) [0x00007] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project+ProjectImpl.Initialize (System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, System.String subToolsetVersion, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext) [0x00127] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, System.String subToolsetVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, Microsoft.Build.Evaluation.Context.EvaluationContext evaluationContext) [0x00073] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, System.String subToolsetVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x00000] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x00000] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection) [0x00000] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.ProjectCollection.LoadProject (System.String fileName, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion) [0x000f7] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at Microsoft.Build.Evaluation.ProjectCollection.LoadProject (System.String fileName, System.String toolsVersion) [0x00000] in <3d628fd3ab3741f191fd8b2e89cd01c9>:0 
  at OmniSharp.MSBuild.ProjectLoader.EvaluateProjectFileCore (System.String filePath, System.Collections.Generic.IReadOnlyDictionary`2[TKey,TValue] projectConfigurationsInSolution) [0x00160] in <a2466ab6416c4288a76fe99dc03b938c>:0 
  at OmniSharp.MSBuild.ProjectLoader.BuildProject (System.String filePath, System.Collections.Generic.IReadOnlyDictionary`2[TKey,TValue] configurationsInSolution) [0x0000d] in <a2466ab6416c4288a76fe99dc03b938c>:0 
  at OmniSharp.MSBuild.ProjectFile.ProjectFileInfo.Load (System.String filePath, OmniSharp.MSBuild.ProjectIdInfo projectIdInfo, OmniSharp.MSBuild.ProjectLoader loader, System.Guid sessionId, OmniSharp.Services.DotNetInfo dotNetInfo) [0x00023] in <a2466ab6416c4288a76fe99dc03b938c>:0 
  at OmniSharp.MSBuild.ProjectManager+<>c__DisplayClass31_0.<LoadProject>b__0 () [0x00000] in <a2466ab6416c4288a76fe99dc03b938c>:0 
  at (wrapper delegate-invoke) System.Func`1[System.ValueTuple`3[OmniSharp.MSBuild.ProjectFile.ProjectFileInfo,System.Collections.Immutable.ImmutableArray`1[OmniSharp.MSBuild.Logging.MSBuildDiagnostic],OmniSharp.MSBuild.Notification.ProjectLoadedEventArgs]].invoke_TResult()
  at OmniSharp.MSBuild.ProjectManager.LoadOrReloadProject (System.String projectFilePath, System.Func`1[TResult] loader) [0x0001b] in <a2466ab6416c4288a76fe99dc03b938c>:0 

...

Steps to reproduce

Expected behavior

VsCode / Omnisharp should load project properly, without errors

JoeRobich commented 3 years ago

We have similar issues with snap installs. You can try something like ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet but replace the snap dotnet folder with the asdf equivalent.

melkio commented 3 years ago

Hi @JoeRobich , same issue even applying your suggestion. It's a blocking issue since I can't use dotnet v5.x with omnisharp and vscode :(

Kurt-von-Laven commented 2 years ago

Same issue here with the caveat that this is on WSL2. The C# extension can't find the .NET Core SDK. The issue is not resolved by any of the following:

which dotnet gives ~/.asdf/shims/dotnet from both the integrated VSCode terminal and WSL2 Ubuntu.

The troubleshooting steps for Linux mention getUnixShellEnvironment, but I suspect that isn't the issue since the bug reproduces when VSCode is launched from the CLI, in which case that function shouldn't be called at all.

timabell commented 2 years ago

This worked for me: https://stackoverflow.com/questions/70820780/vscode-or-anothers-editors-dont-recognize-sdk-dotnet-installed-with-asdf/70820974#70820974

version=`asdf current dotnet-core | awk '{print $2}'`
echo "Parsed version: $version"
export DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR=$(echo $HOME/.asdf/installs/dotnet-core/$version/sdk/$version/Sdks)
export DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER=$version
export DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR=$(echo $HOME/.asdf/installs/dotnet-core/$version)
code .

https://gist.github.com/timabell/279823d5433176f24d170ef9c43d797e

(make sure there isn't already a copy of VSCode running otherwise I don't think it'll get the vars)

Kurt-von-Laven commented 2 years ago

Thank you! I have been wondering about this for quite some time. I tried a slightly simplified version of the same thing, but it didn't work for me (c.f., https://github.com/OmniSharp/omnisharp-vscode/issues/2970#issuecomment-1073187929 for my pertinent OmniSharp log output). I feel like I am overlooking something obvious if anyone has any suggestions. On a side note, there is no reason to use echo or command substitution in the export statements in that StackOverflow answer; double quotes will suffice in this case. I added the following to the bottom of my .bashrc.

export DOTNET_ROOT="$(asdf where dotnet-core)"
export DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER="$(basename $DOTNET_ROOT)"
export DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR="$DOTNET_ROOT/sdk/$DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER/Sdks"
export DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR="$DOTNET_ROOT"
nohwnd commented 2 years ago

Might be fixed by #4738