dotnet / dotnet/fsharp

FSISession seems to load wrong SDK even with global.json set

Open
#15,492 0 comments 0 reactions 1 assignee Claimed by @KevinRansom View on GitHub
Area-FSI Bug Impact-Low
Dominant language
F#
Stars
4.3k
Forks
876
Avg merge
4d 22h
Merged PRs (30d)
144

Description

Please provide a succinct description of the issue.

👋 When using the [fsdocs](https://fsprojects.github.io/FSharp.Formatting/upgrade.html) tool from [FSharp.Formatting](https://github.com/fsprojects/FSharp.Formatting), moving from SDK version `7.0.201` to `7.0.304` it seems to try loading a preview version of one of my SDKs.

```
Content:
preparing C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\build\..\docsSrc\index.md --> .\index.html
preparing C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\build\..\docsSrc\Explanations\Comparison-between-different-Async-types.md --> .\Explanations\Comparison-between-different-Async-types.html
generating model for C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\build\..\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx --> .\How-To-Guides\Cancellable-Task-In-Falco.html
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: The "ProcessFrameworkReferences" task failed unexpectedly. [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: System.IO.FileLoadException: Could not load file or assembly 'NuGet.Frameworks, Version=6.6.0.57, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Could not find or load a specific file. (0x80131621) [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: File name: 'NuGet.Frameworks, Version=6.6.0.57, Culture=neutral, PublicKeyToken=31bf3856ad364e35' [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: ---> System.IO.FileLoadException: Could not load file or assembly 'NuGet.Frameworks, Version=6.6.0.66, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath) [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingLoad(AssemblyName assemblyName) [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName) [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at Microsoft.NET.Build.Tasks.ProcessFrameworkReferences.ExecuteCore() [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute() [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
error from GetProjectOptionsFromScript 'C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\docsSrc\How-To-Guides\Cancellable-Task-In-Falco.fsx (23,0)-(23,17): Error FS3217: C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [C:\Users\jimmy\.packagemanagement\nuget\Projects\30024--2497f02e-04fa-408f-b6d1-f4660f50e66e\Project.fsproj]'
exiting due to errors in script
```

[FsDocs FsiEvaluator](https://github.com/fsprojects/FSharp.Formatting/blob/075341f4459760672ae9a4efddbddaa40076b194/src/fsdocs-tool/BuildCommand.fs#L258)

**Repro steps**

Provide the steps required to reproduce the problem:

- Have 3 sdks installed, 7.0.201, 7.0.304, and some 8 preview.
- [Clone IcedTasks](https://github.com/TheAngryByrd/IcedTasks)
- Set global.json to use 7.0.304
- Run `build.cmd BuildDocs` (or build.sh)
- See error
- Set it to 7.0.201
- Don't see error

If possible attach a zip file with the repro case. This often makes it easier for others to reproduce.
The zip file should ideally represent the situation just before the call/step that is problematic.

**Expected behavior**

It should use the Fsi from the global.json SDK version

**Actual behavior**

It seems to use the last sdk installed regardless of global.json

**Known workarounds**

Pin to an older sdk

**Related information**

Provide any related information (optional):

* Operating system
* .NET Runtime kind (.NET Core, .NET Framework, Mono)
* Editing Tools (e.g. Visual Studio Version, Visual Studio)

```
dotnet --info
.NET SDK:
Version: 7.0.203
Commit: 5b005c19f5

Runtime Environment:
OS Name: Windows
OS Version: 10.0.22621
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\7.0.203\

Host:
Version: 8.0.0-preview.3.23174.8
Architecture: x64
Commit: 47bad717bd

.NET SDKs installed:
5.0.404 [C:\Program Files\dotnet\sdk]
6.0.101 [C:\Program Files\dotnet\sdk]
6.0.203 [C:\Program Files\dotnet\sdk]
6.0.411 [C:\Program Files\dotnet\sdk]
7.0.100-rc.2.22477.23 [C:\Program Files\dotnet\sdk]
7.0.100 [C:\Program Files\dotnet\sdk]
7.0.202 [C:\Program Files\dotnet\sdk]
7.0.203 [C:\Program Files\dotnet\sdk]
7.0.304 [C:\Program Files\dotnet\sdk]
7.0.400-preview.23226.4 [C:\Program Files\dotnet\sdk]
8.0.100-preview.3.23178.7 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.19 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0-preview.3.23177.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.15 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.19 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0-rc.2.22472.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0-preview.3.23174.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.15 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.19 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.0-rc.2.22472.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0-preview.3.23178.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
x86 [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:
Not set

global.json file:
C:\Users\jimmy\Repositories\public\TheAngryByrd\IcedTasks\global.json

Learn more:
https://aka.ms/dotnet/info

Download .NET:
https://aka.ms/dotnet/download
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.