I've had working installations of this repo for several years, but recently installed a new workstation and I was wondering how it would go.
It is a lot smoother than it was back in the day, but there are still some things that don't quite work as expected and/or could be improved. Mostly: doing as instructed won't "just work".
System:
- Windows latest
- Visual Studio RTM latest
- .NET 6.0 and .NET 8.0 SDKs.
First attempt
Trying to be naive:
- Checkout
main, run build.cmd --> success
- Open
FSharp.sln in Visual Studio
- first time, asks for SDK and .NET Framework to be installed (as expected from instructions)
- lot's of errors that .NET SDK cannot be found.
- Build in Visual Studio: fails without showing details
- Running
dotnet tool restore in the root --> error: "The command could not be loaded" (I assume because of global.json)
Second attempt
A little less naive. I ran the following command to install .NET Preview (not in devguide.md, but there they do say you need a specific Preview version):
winget install Microsoft.DotNet.SDK.Preview
- Open
FSharp.sln in Visual Studio --> less errors
- Ctrl-Shift-B (build all) in Visual Studio: fails three projects, something about resources missing (
fsi, fsc and Compiler.Service.Tests). Sorry, forgot to copy the error.
- Running
dotnet tool restore in the root --> success
Then: closed Visual Studio, reopen it again, and recompile. This time success.
Error window shows 630 errors, all of them this:

All in all, not too bad. right? I can easily work with and work around these errors, and as mentioned, it is much better than in the (far) past. But I think we can still improve.
My proposal would be something like:
- auto-install the .NET version (there's an interactive Y/N question, so people can always deny it), if the requested version is not there. Unless this is considered too intrusive.
- fix the "This construct is deprecated: it is only for use in the F# library" error to pop up (I assume others see this too, no? Or is this a setting in the project or in Visual Studio? It does not prevent building the solution, though.
Still a little surprised though that building through build.cmd goes fine, but building through Visual Studio does not, and requires .NET SDK Preview to be installed globally. Esp because the logs clearly show this, suggesting that it has been installed successfully:
GET https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1
Attempting to install 'sdk v9.0.100-preview.3.24204.13' from public location.
dotnet-install: Remote file https://dotnetcli.azureedge.net/dotnet/Sdk/9.0.100-preview.3.24204.13/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.zip size is 309190459 bytes.dotnet-install: Downloaded file https://dotnetcli.azureedge.net/dotnet/Sdk/9.0.100-preview.3.24204.13/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.zip size is 309190459 bytes.
dotnet-install: The remote and local file sizes are equal.
dotnet-install: Extracting the archive.
dotnet-install: Adding to current process PATH: "D:\projects\OpenSource\fsharp\.dotnet\". Note: This change will not be visible if PowerShell was run as a child process.
dotnet-install: Note that the script does not resolve dependencies during installation.
dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install/windows#dependencies
dotnet-install: Installed version is 9.0.100-preview.3.24204.13
dotnet-install: Installation finished
I've had working installations of this repo for several years, but recently installed a new workstation and I was wondering how it would go.
It is a lot smoother than it was back in the day, but there are still some things that don't quite work as expected and/or could be improved. Mostly: doing as instructed won't "just work".
System:
First attempt
Trying to be naive:
main, runbuild.cmd--> successFSharp.slnin Visual Studiodotnet tool restorein the root --> error: "The command could not be loaded" (I assume because ofglobal.json)Second attempt
A little less naive. I ran the following command to install .NET Preview (not in devguide.md, but there they do say you need a specific Preview version):
FSharp.slnin Visual Studio --> less errorsfsi,fscandCompiler.Service.Tests). Sorry, forgot to copy the error.dotnet tool restorein the root --> successThen: closed Visual Studio, reopen it again, and recompile. This time success.
Error window shows 630 errors, all of them this:
All in all, not too bad. right? I can easily work with and work around these errors, and as mentioned, it is much better than in the (far) past. But I think we can still improve.
My proposal would be something like:
Still a little surprised though that building through
build.cmdgoes fine, but building through Visual Studio does not, and requires .NET SDK Preview to be installed globally. Esp because the logs clearly show this, suggesting that it has been installed successfully: