Is running VisualFSharpFull still supported? Several errors when running it after clean build.
It's been over a year that I tried this, but, at least for me, it doesn't work out of the box. Before I'm going to try to debug what's going on, let me first ask the simple question: is running / debugging from VisualFSharpFull in the VisualFSharp.sln still supported?
Repro steps
- Checkout latest
main - Ensure clean (
git clean -xdf) - Run
build.cmd - Open
VisualFSharp.sln - Select
Release, then Build - Click Debug -> Run (or Ctrl+F5)
- Wait until new Visual Studio opens
- Select any existing F# project
Expected behavior
It should "just work".
Actual behavior
Receiving a couple of those:

And after clicking each away, it shows this on top, clicking Reload projects has no effect:

Known workarounds
I'd like to hear them!
Related information
- Latest Visual Studio 2022 (do I need the latest preview perhaps?)
- Windows 11
- Available locally: latest preview dotnet SDK
Also tried:
- As administrator and without
- With an existing F# 6.0 project
- Without any project and trying to create a new once: Console F#
Each of the above leads to load errors.
Log
The Activity Log shows a bunch of warnings like this:
The term 'ProjSelected' for the UI context 5d0ad025-3bf2-4260-bdb9-8e320ffa4b1e is not referenced in the expression '( (AspNetCore & TargetsDotNetCore) | (AzureFunctions & TargetsDotNetCore) | (CSharp & CrossPlatformExecutable & !WindowsForms & !WPF) | (VB & CrossPlatformExecutable & !WindowsForms & !WPF) | (CSharp & WebProject) | (VB & WebProject) ) & SolutionExistsAndNotBuildingAndNotDebugging & !WebAssembly'. This term will be ignored.
This:
Request for "Microsoft.VisualStudio.Shell.Internal.SettingsManager (1.0)" from Process denied because the service is only exposed RemoteExclusiveClient, LiveShareGuest. Request for proxy to "Microsoft.VisualStudio.Shell.Internal.SettingsManager (1.0)" is declined: ServiceAudienceMismatch.
This:
About to block on async service creation because the service was requested via GetService. This has the potential to deadlock. Async initializing services should be retrieved via GetServiceAsync.
Errors on IntelliCode and FSharp.Editor.dll:
Still unable to load MEF component DLL: Could not load file or assembly 'Microsoft.VisualStudio.VC.RecommendationProvider, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\EXTENSIONS\Microsoft\IntelliCode\IntelliCodeCpp.dll Still unable to load MEF component DLL: Could not load file or assembly 'Microsoft.CodeAnalysis.Workspaces, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. c:\users\abel\appdata\local\microsoft\visualstudio\17.0_99cd9cf1roslyndev\extensions\microsoft.visualfsharptools\visual f# tools\42.42.42.4242424\FSharp.Editor.dll
And this big one, suggesting there's an assembly load error with LanguageServices for F#:
CreateInstance failed for package [FSharpPackage]Source: 'mscorlib' Description: Could not load file or assembly 'Microsoft.VisualStudio.LanguageServices, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.LanguageServices, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.VisualStudio.LanguageServices, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type) at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark) at System.Activator.CreateInstance(String assemblyName, String typeName) at System.AppDomain.CreateInstance(String assemblyName, String typeName) WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
The VS load log shows many of the following errors repeated (probably once for each project in the solution I'm trying to open):
=====================
8/17/2022 12:15:47
LimitedFunctionality
System.Runtime.InteropServices.COMException (0x80004005): 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__DisplayClass86_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__8.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.WorkspaceProjectContextProvider.<CreateProjectContextHandlingFaultAsync>d__7.MoveNext()
Yep, latest preview is needed for now unfortunately. We had to update packages to support some latest scenarios. We should've done it in 17.4 branch, but unfortunately did it in main.
I don't really mind having to download latest preview, but can that not be enforced? It's kind of surprising this way (even more so for newcomers to F# compiler & tools). Something like "Hey, you need VS 2099 for running these features"?
At the very least I can update the devguide.md, didn't find this there.
I'll try with latest preview.
PS: we are talking about this, right? https://visualstudio.microsoft.com/vs/preview/.
I don't really mind having to download latest preview, but can that not be enforced? It's kind of surprising this way (even more so for newcomers to F# compiler & tools). Something like "Hey, you need VS 2099 for running these features"?
At the very least I can update the
devguide.md, didn't find this there.
We hoped to "stabilize" requirements after we released .NET 7, since now they will be changing rapidly - we need to be testing new framework and VS quite often till release in the autumn.
PS: we are talking about this, right? visualstudio.microsoft.com/vs/preview.
Yep, latest 17.4 preview
Separately, I just got these errors on a clean build of main with the MS internal preview
C:\Program Files\Microsoft Visual Studio\2022\Internal Preview\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGe
t.targets(132,5): error : The folder 'C:\Users\dsyme\.nuget\packages\fscheck\lib' contains an invalid version. [
C:\GitHub\dsyme\fsharp\VisualFSharp.sln]
C:\GitHub\dsyme\fsharp\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj : error Undefined: The folder 'C
:\Users\dsyme\.nuget\packages\fscheck\lib' contains an invalid version.
C:\GitHub\dsyme\fsharp\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj : error Undefined: The folder 'C
:\Users\dsyme\.nuget\packages\fscheck\lib' contains an invalid version.
C:\GitHub\dsyme\fsharp\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj : error Undefined: The folder 'C
:\Users\dsyme\.nuget\packages\fscheck\lib' contains an invalid version.
C:\GitHub\dsyme\fsharp\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj : error Undefined: The folder 'C
:\Users\dsyme\.nuget\packages\fscheck\lib' contains an invalid version.
0 Warning(s)
5 Error(s)
Hm, seems like related to this PR: https://github.com/dotnet/fsharp/pull/13687, let me see if I can reproduce it. @dsyme out of curiosity, if you remove the FsCheck from the nuget cache - will it build?
It seems to be working on the latest preview for me. But I didn't have this version of the FsCheck installed before. Interesting.
Both VisualFSharpFull and VisualFSharpDebug work for me in the latest 17.4
Yeah, works for me again as well. From time to time, it appears I need to update the dotnet SDK and/or the CLR or something, which makes sense, I guess. Not sure that was the cause here, but either way, all's well that ends well :).