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)
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 cleanoption might be useful.