ionide / ionide-vscode-fsharp

VS Code plugin for F# development
http://ionide.io
MIT License
858 stars 277 forks source link

No definition found in VS Code for Nuget packages referenced from F#. #1958

Open bomzj opened 11 months ago

bomzj commented 11 months ago

Describe the bug

Go to Definition(F12) for Nuget assemblies doesn't work.

For instance, I added Playwright nuget package, but can't see it's API via F12, whereas 'Go to Definition' command works fine for all standard .NET libraries.

Steps to reproduce

No-Definition-Found-on-F12-in-F#-Vs-Code

Ionide Extension Stack Trace

2023-11-08 08:00:51.744 [error] [Ionide.Ionide-fsharp] provider FAILED
2023-11-08 08:00:51.744 [error] Error: Error while decompiling symbol 'Method ("Microsoft.Playwright.Playwright", "CreateAsync", [], 0)' in file 'C:\Users\maksi\.nuget\packages\microsoft.playwright\1.39.0\lib\netstandard2.0\Microsoft.Playwright.dll': Failed to resolve assembly: 'Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
Resolve result: <not found>
   at ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver.ResolveInternal(IAssemblyReference name) in /_/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs:line 427
   at ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver.FindAssemblyFile(IAssemblyReference name) in /_/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs:line 284
   at ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver.Resolve(IAssemblyReference name) in /_/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs:line 203
   at ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver.<>c__DisplayClass22_0.<ResolveAsync>b__0() in /_/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs:line 243
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
   at ICSharpCode.Decompiler.TypeSystem.DecompilerTypeSystem.InitializeAsync(PEFile mainModule, IAssemblyResolver assemblyResolver, TypeSystemOptions typeSystemOptions) in /_/ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs:line 251
   at ICSharpCode.Decompiler.TypeSystem.DecompilerTypeSystem..ctor(PEFile mainModule, IAssemblyResolver assemblyResolver, TypeSystemOptions typeSystemOptions) in /_/ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs:line 210
   at ICSharpCode.Decompiler.TypeSystem.DecompilerTypeSystem..ctor(PEFile mainModule, IAssemblyResolver assemblyResolver) in /_/ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs:line 195
   at ICSharpCode.Decompiler.CSharp.CSharpDecompiler.CreateTypeSystemFromFile(String fileName, DecompilerSettings settings) in /_/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs:line 451
   at ICSharpCode.Decompiler.CSharp.CSharpDecompiler..ctor(String fileName, DecompilerSettings settings) in /_/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs:line 237
   at FsAutoComplete.Decompiler.decompilerForFile(String file) in /home/runner/work/FsAutoComplete/FsAutoComplete/src/FsAutoComplete.Core/Decompiler.fs:line 63
   at FsAutoComplete.Decompiler.decompile(FindDeclExternalSymbol externalSym, String assemblyPath) in /home/runner/work/FsAutoComplete/FsAutoComplete/src/FsAutoComplete.Core/Decompiler.fs:line 149
    at c:\Users\maksi\.vscode\extensions\ionide.ionide-fsharp-7.15.2\fsharp.js:2:178257
    at c:\Users\maksi\.vscode\extensions\ionide.ionide-fsharp-7.15.2\fsharp.js:2:178551
    at Immediate.<anonymous> (c:\Users\maksi\.vscode\extensions\ionide.ionide-fsharp-7.15.2\fsharp.js:2:178913)
    at process.processImmediate (node:internal/timers:476:21)

Machine info