sdk: workload list: `WorkloadManifestCompositionException: Could not find workload microsoft-net-runtime-android-net6

Describe the bug

After installing and uninstalling wasm-tools the dotnet workload list fails with

Unhandled exception: Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestCompositionException: Could not find workload 'microsoft-net-runtime-android-net6' extended by workload 'android' in manifest 'microsoft.net.sdk.android'

Console dump

pavel> dotnet-install.ps1 -v 7.0.100-rc.1.22375.2
pavel> dotnet --info
.NET SDK:
 Version:   7.0.100-rc.1.22375.2
 Commit:    4893d35322

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.22622
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   c:\Users\pavelsavara\.dotnet\sdk\7.0.100-rc.1.22375.2\

Host:
  Version:      7.0.0-rc.1.22367.4
  Architecture: x64
  Commit:       aafa91036e

.NET SDKs installed:
  7.0.100-rc.1.22375.2 [c:\Users\pavelsavara\.dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.0-rc.1.22368.6 [c:\Users\pavelsavara\.dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.0-rc.1.22367.4 [c:\Users\pavelsavara\.dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 7.0.0-rc.1.22366.1 [c:\Users\pavelsavara\.dotnet\shared\Microsoft.WindowsDesktop.App]

C:\Dev\game-of-life\dotnet>dotnet workload install wasm-tools
Installing workload manifest microsoft.net.sdk.android version 33.0.0-rc.1.150.
Installing workload manifest microsoft.net.sdk.ios version 15.4.1009-rc.1.
Installing workload manifest microsoft.net.sdk.maccatalyst version 15.4.1009-rc.1.
Installing workload manifest microsoft.net.sdk.macos version 12.3.1009-rc.1.
Installing workload manifest microsoft.net.sdk.maui version 7.0.0-rc.1.6524.
Installing workload manifest microsoft.net.sdk.tvos version 15.4.1009-rc.1.
Installing workload manifest microsoft.net.workload.mono.toolchain version 8.0.0-alpha.1.22430.9.
Installing workload manifest microsoft.net.workload.emscripten version 8.0.0-alpha.1.22417.1.
Installing pack Microsoft.NET.Runtime.WebAssembly.Sdk version 8.0.0-alpha.1.22430.9...
Installing pack Microsoft.NETCore.App.Runtime.Mono.browser-wasm version 8.0.0-alpha.1.22430.9...
Installing pack Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm version 8.0.0-alpha.1.22430.9...
Installing pack Microsoft.NET.Runtime.MonoAOTCompiler.Task version 8.0.0-alpha.1.22430.9...
Installing pack Microsoft.NET.Runtime.MonoTargets.Sdk version 8.0.0-alpha.1.22430.9...
Installing pack Microsoft.NET.Runtime.Emscripten.3.1.12.Node.win-x64 version 8.0.0-alpha.1.22417.1...
Installing pack Microsoft.NET.Runtime.Emscripten.3.1.12.Python.win-x64 version 8.0.0-alpha.1.22417.1...
Installing pack Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.win-x64 version 8.0.0-alpha.1.22417.1...
Garbage collecting for SDK feature band(s) 7.0.100-rc.1...
Successfully installed workload(s) wasm-tools.

pavel> dotnet workload uninstall wasm-tools

Removing workload installation record for wasm-tools...
Garbage collecting for SDK feature band(s) ...
Uninstalling workload pack Microsoft.NET.Runtime.Emscripten.Node version 8.0.0-alpha.1.22417.1.
Uninstalling workload pack Microsoft.NET.Runtime.Emscripten.Python version 8.0.0-alpha.1.22417.1.
Uninstalling workload pack Microsoft.NET.Runtime.Emscripten.Sdk version 8.0.0-alpha.1.22417.1.
Uninstalling workload pack Microsoft.NET.Runtime.MonoAOTCompiler.Task version 8.0.0-alpha.1.22430.9.
Uninstalling workload pack Microsoft.NET.Runtime.MonoTargets.Sdk version 8.0.0-alpha.1.22430.9.
Uninstalling workload pack Microsoft.NET.Runtime.WebAssembly.Sdk version 8.0.0-alpha.1.22430.9.
Uninstalling workload pack Microsoft.NETCore.App.Runtime.AOT.Cross.browser-wasm version 8.0.0-alpha.1.22430.9.
Uninstalling workload pack Microsoft.NETCore.App.Runtime.Mono.browser-wasm version 8.0.0-alpha.1.22430.9.

Successfully uninstalled workload(s): wasm-tools


pavel> dotnet workload list
Unhandled exception: Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestCompositionException: Could not find workload 'microsoft-net-runtime-android-net6' extended by workload 'android' in manifest 'microsoft.net.sdk.android' [c:\Users\pavelsavara\.dotnet\sdk-manifests\7.0.100-rc.1\microsoft.net.sdk.android\WorkloadManifest.json]
   at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.<>c__DisplayClass26_0.<<EnumerateWorkloadWithExtends>g__EnumerateWorkloadWithExtendsRec|0>d.MoveNext()
   at System.Linq.Enumerable.AppendPrependIterator`1.LoadFromEnumerator()
   at System.Linq.Enumerable.AppendPrepend1Iterator`1.MoveNext()
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.GetAvailableWorkloadDefinitions()+MoveNext()
   at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.Contains[TSource](IEnumerable`1 source, TSource value, IEqualityComparer`1 comparer)
   at Microsoft.DotNet.Workloads.Workload.List.VisualStudioWorkloads.GetInstalledWorkloads(IWorkloadResolver workloadResolver, SdkFeatureBand sdkFeatureBand, InstalledWorkloadsCollection installedWorkloads)
   at Microsoft.DotNet.Workloads.Workload.List.WorkloadInfoHelper.AddInstalledVsWorkloads(IEnumerable`1 sdkWorkloadIds)
   at Microsoft.DotNet.Workloads.Workload.List.WorkloadListCommand.Execute()
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.DotNet.Cli.Parser.<>c__DisplayClass16_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 15 (4 by maintainers)

Most upvoted comments

Feel free to file a new issue on this. The reason I don’t want to reopen is that the original issue was clearly installing 8.0 versions of workloads and so unlikely to be related even if the errors look similar.

For the new behavior, can you zip up the contents of the dotnet/sdk-manifests folder as it seems like you’re in some sort of torn state for the workload manifests? One option is to install a zip version of your sdk into a different folder, runt dotnet workload update which should update just the manifests to the latest versions, and then replace the contents of the sdk-manifests folder you have with those from the zip install. That might cause issues later depending on the msi records in your registry with a later update but would get you unblocked for now.

Another case where a dotnet workload clean option might be useful.