Skip to content

F# tooling doesn't work in VS #20779

Closed
Closed

Description

@kerams

Today's VS update completely broke F# tooling

=====================
13. 10. 2026 21:38:53
Project: Mobile.iOS.fsproj
LimitedFunctionality
System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
   at Microsoft.VisualStudio.Shell.Interop.IVsTaskBody.DoWork(IVsTask pTask, UInt32 dwCount, IVsTask[] pParentTasks, Object& pResult)
   at Microsoft.VisualStudio.Services.VsTask.<>c__DisplayClass89_0.<GetCallbackForMultipleParent>b__0(Task`1[] _)
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e)
   at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)
   at Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.CPS.CPSProjectFactory.<CreateProjectContextAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.VS.LanguageServices.RoslynProjectFactory.<CreateAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.LanguageServices.RoslynProjectUpdateSubscription`1.<>c__DisplayClass38_1.<<OnEvaluationUpdateAsync>g__CreateProjectAsync|4>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.LanguageServices.RoslynProjectUpdateSubscription`1.<>c__DisplayClass38_0.<<OnEvaluationUpdateAsync>g__ProcessInitialEvaluationDataAsync|1>d.MoveNext()
===================
13. 10. 2026 21:38:53
Project: Fable.SignalR.fsproj
LimitedFunctionality
System.ArgumentException: Value does not fall within the expected range.
   at Microsoft.VisualStudio.Shell.Interop.IVsTaskBody.DoWork(IVsTask pTask, UInt32 dwCount, IVsTask[] pParentTasks, Object& pResult)
   at Microsoft.VisualStudio.Services.VsTask.<>c__DisplayClass89_0.<GetCallbackForMultipleParent>b__0(Task`1[] _)
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e)
   at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)
   at Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.CPS.CPSProjectFactory.<CreateProjectContextAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.VS.LanguageServices.RoslynProjectFactory.<CreateAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.LanguageServices.RoslynProjectUpdateSubscription`1.<>c__DisplayClass38_1.<<OnEvaluationUpdateAsync>g__CreateProjectAsync|4>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.LanguageServices.RoslynProjectUpdateSubscription`1.<>c__DisplayClass38_0.<<OnEvaluationUpdateAsync>g__ProcessInitialEvaluationDataAsync|1>d.MoveNext()

#14727 #18766 (comment)

Related information

  • VS Insiders [12308.306]

Activity

  1. added theissue type on Oct 13, 2026
  2. added this to the Backlog milestone on Oct 13, 2026
  3. added
    Area-VSVS support for F# not covered elsewhere
    on Oct 13, 2026
  4. kerams commented on Oct 14, 2026

    @kerams
    ContributorAuthor

    Looks like it was caused by some traces on an old custom VSIX install

    This looks specific to your installation: an old F# development build survived the VS update.
    I found:
    - Installed F# VSIX version: 42.42.42.4242424, with files dating from June.
    - Latest preview expects 18.8.0.2647901.
    - Yesterday’s installer explicitly retained the old package: PlannedAction: None.
    - That editor references Roslyn 5.8, while VS now uses 5.12.
    
    Yes—the update is the trigger. You didn’t need to touch the development build for this to happen.
    I checked the update records:
    - VS changed from 18.11.12224.323 → 18.12.12308.306 and updated Roslyn.
    - The installer retained your June F# development build instead of installing the accompanying F# update.
    The old F# build could work with yesterday’s Roslyn through compatibility redirects. Today it fails because its required Microsoft.CodeAnalysis.ExternalAccess.FSharp assembly cannot be found.
    So the diagnosis is a previously working development installation broken by the update leaving mismatched components. The 42.42… version appears to have prevented the normal F# replacement. Restoring the shipped F# component is still the appropriate repair; clearing local caches alone won’t resolve the missing dependency.
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions