Skip to content

.NET 8 fails to resolve workload on Fedora #37880

@Kampfmoehre

Description

@Kampfmoehre

Describe the bug

Most dotnet commands do not work or print an additional error like below when dotnet-sdk-8.0 is installed.

To Reproduce

  1. Install dotnet 8 sdk on Fedora 39 with sudo dnf install dotnet-sdk-8.0 (the one from Fedora updates repo)
  2. run dotnet --info or some other dotnet commands
  3. an error with stack trace is displayed

Exceptions (if any)

Example output when trying to build a project:

dotnet build src/MyProject/
MSBuild version 17.8.3+195e7f5a3 for .NET
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242: SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.Sdk.Worker". Exception: "System.FormatException: The specified version does not contain a valid major, minor, and patch version: 'sdk'.
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.TryParse(String input, Boolean throwOnFailure, ReleaseVersion& version)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.Parse(String input)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.Deployment.DotNet.Releases.ReleaseVersion..ctor(String version)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c.<FallbackForMissingManifest>b__15_1(String featureBand)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at System.Linq.Utilities.<>c__DisplayClass2_0`3.<CombineSelectors>b__0(TSource x) in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Utilities.cs:line 71
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at System.Linq.Enumerable.SelectArrayIterator`2.MoveNext() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Select.cs:line 191
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Where.cs:line 391
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Where.cs:line 391
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Where.SpeedOpt.cs:line 54
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/ToCollection.cs:line 29
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.FallbackForMissingManifest(String manifestId)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifests()
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.Create(IWorkloadManifestProvider manifestProvider, String dotnetRootPath, String sdkVersion, String userProfileDir)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir, String globalJsonPath)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.WorkloadSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, SdkResultFactory factory)
/home/<user>/dev/dotnet-net/src/MyProject/MyProject.csproj : error MSB4242:    at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.TryResolveSdkUsingSpecifiedResolvers(IList`1 resolvers, Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio, SdkResult& sdkResult, IEnumerable`1& errors, IEnumerable`1& warnings)""

Same error happens when running dotnet restore.

Further technical details

Dotnet info output:

$ dotnet --info
.NET SDK:
 Version:           8.0.100
 Commit:            57efcf1350
System.FormatException: The specified version does not contain a valid major, minor, and patch version: 'sdk'.
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.TryParse(String input, Boolean throwOnFailure, ReleaseVersion& version)
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.Parse(String input)
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion..ctor(String version)
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c.<FallbackForMissingManifest>b__15_1(String featureBand)
   at System.Linq.Utilities.<>c__DisplayClass2_0`3.<CombineSelectors>b__0(TSource x) in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Utilities.cs:line 71
   at System.Linq.Enumerable.SelectArrayIterator`2.MoveNext() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Select.cs:line 191
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Where.cs:line 391
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Where.cs:line 391
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList() in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/Where.SpeedOpt.cs:line 54
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) in /_/src/runtime/artifacts/source-build/self/src/src/libraries/System.Linq/src/System/Linq/ToCollection.cs:line 29
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.FallbackForMissingManifest(String manifestId)
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifests()
   at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider)
   at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.Create(IWorkloadManifestProvider manifestProvider, String dotnetRootPath, String sdkVersion, String userProfileDir)
   at Microsoft.DotNet.Workloads.Workload.List.WorkloadInfoHelper..ctor(Boolean isInteractive, VerbosityOptions verbosity, String targetSdkVersion, Nullable`1 verifySignatures, IReporter reporter, IWorkloadInstallationRecordRepository workloadRecordRepo, String currentSdkVersion, String dotnetDir, String userProfileDir, IWorkloadResolver workloadResolver)
   at Microsoft.DotNet.Cli.WorkloadCommandParser.GetWorkloadsVersion(WorkloadInfoHelper workloadInfoHelper)
   at Microsoft.DotNet.Cli.CommandLineInfo.PrintInfo()
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)

Host:
  Version:      8.0.0
  Architecture: x64
  Commit:       5535e31a71
  RID:          fedora.39-x64

.NET SDKs installed:
  6.0.125 [/usr/lib64/dotnet/sdk]
  7.0.114 [/usr/lib64/dotnet/sdk]
  8.0.100 [/usr/lib64/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.25 [/usr/lib64/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.14 [/usr/lib64/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0 [/usr/lib64/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.25 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.14 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/usr/lib64/dotnet]

global.json file:
  Not found

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

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

I used dotnet 7 without any problems before, things start to work again when I remove dotnet-sdk-8-0 and related packages (and use .net 7 again).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions