dotnet / fsharp

The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio
https://dotnet.microsoft.com/languages/fsharp
MIT License
3.87k stars 781 forks source link

VS: option pages erroring. #17602

Closed majocha closed 2 days ago

majocha commented 3 weeks ago

This is not the released version, but a vsix built from latest main installed into latest VS 17.12.0 Preview 1.0.

image

The first commit that breaks this for me is:

bc40f6a (#17537)

ETA: External WPF bug: https://github.com/dotnet/wpf/issues/9582

majocha commented 3 weeks ago

image Huh?

vzarytovskii commented 3 weeks ago

Hm, not the first issue with the options - https://github.com/dotnet/fsharp/pull/17015

majocha commented 3 weeks ago

OK it still worked before #17569. Shouldn't take long to bisect.

vzarytovskii commented 3 weeks ago

Wondering if translations are out of date

majocha commented 3 weeks ago

I think all the strings we use in XAML are bound with x:Static so anything missing would fail at build.

I suspect some dependencies changed and are somehow conflicting with net472 era WPF in a way that surfaces only at runtime. Roslyn uses quite a lot of XAML in the C# extension, I wonder if they're seeing this problem.

I tried to identify the exact change when this shows up. The last commit this still works is 6cd4d59, the next one: bc40f6a (#17537) it's broken.

majocha commented 3 weeks ago

So, the only change is the update to net9 preview 7. This looks very much like this https://github.com/dotnet/wpf/issues/9620, but why on earth would it affect us if we're targeting net472🤔?

majocha commented 3 weeks ago

OK, this is very likely external and related to net 9 preview 7 changes.

I created a simple WPF app targeting net472: image

It works fine when built and run from stable VS (17.11.1)

but add a global.json with

  "sdk": {
    "version": "9.0.100-preview.7.24407.12"
  }

and it breaks the same way as our vsix: image

vzarytovskii commented 2 weeks ago

Thanks for investigating, hopefully it is fixed with rc1.

majocha commented 2 weeks ago

Yes, quite a relief nothing's broken on our side 😅.

majocha commented 2 days ago

Fixed with 9rc1.