Closed benvillalobos closed 3 years ago
Innocent question: How would you know, in general, the current .NET Core runtime version is "less than" a particular installed version? What logic do you suggest? What about if .NET Core adopts an Android-style API levels concept? That is what net472 and netstandard2.0 tried, but it was an utter failure for OOB scenarios. Maybe this will work for In-Box scenarios since Microsoft can create a closed world where the "less than" operator is statically known and can fully regression test the SdkReference universe because its known via double secret handshake. But you can't extend this to plug-ins that use a PackageReference, right?
This is breaking our dotnet mpc
tool: https://github.com/neuecc/MessagePack-CSharp/issues/1102
This issue is breaking the Q# language server if .NET 5.0 is installed: https://github.com/microsoft/qsharp-compiler/issues/737
Related issue and repro: https://github.com/dotnet/msbuild/issues/5600
When targeting netcore3.1 and loading an assembly that depends on a net5.0 assembly (in this case
Microsoft.Build.NuGetSdkResolver
depending onSystem.Runtime
version 5.0), it can fail to load.It fails on line 118 of SdkResolverService
We should consider changing MSBuildLocator to NOT return .NET Core SDK's that are newer than the current .NET Core runtime.