Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workload ID maui-android is not recognized #38171

Closed
soma-kurisu opened this issue Jan 22, 2024 · 18 comments
Closed

Workload ID maui-android is not recognized #38171

soma-kurisu opened this issue Jan 22, 2024 · 18 comments

Comments

@soma-kurisu
Copy link

Description

analogous to dotnet/maui#3099 we again get "Workload ID maui-android is not recognized." when running:

~$ dotnet workload install maui-android 
Workload ID maui-android is not recognized.

interestingly the MAUI workload is not even listed when doing:

~$ dotnet workload search

Workload ID                 Description                                     
----------------------------------------------------------------------------
aspire                             .NET Aspire SDK (Preview)                       
wasi-experimental       workloads/wasi-experimental/description         
wasm-experimental    workloads/wasm-experimental/description         
wasm-experimental-net7      .NET WebAssembly experimental tooling for net7.0
wasm-tools                  .NET WebAssembly build tools                    
wasm-tools-net6         .NET WebAssembly build tools for net6.0         
wasm-tools-net7         .NET WebAssembly build tools for net7.0         

my setup:

~$ dotnet --version --list-sdks
8.0.101

~$ cat /etc/os-release 
PRETTY_NAME="Ubuntu 23.10"
...

Steps to Reproduce

No response

Link to public reproduction project repository

No response

Version with bug

8.0.6

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

Unknown/Other

Affected platforms

I was not able test on other platforms

Affected platform versions

No response

Did you find any workaround?

No response

Relevant log output

No response

@HuaFangYun
Copy link

dotnet workload install maui

@mattleibow mattleibow transferred this issue from dotnet/maui Jan 22, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Workloads untriaged Request triage from a team member labels Jan 22, 2024
@marcpopMSFT
Copy link
Member

How did you install the SDK? What's in the dotnet/sdk-manifests folder? Seems like a bad install.

@marcpopMSFT marcpopMSFT added this to the Discussion milestone Jan 23, 2024
@marcpopMSFT marcpopMSFT removed the untriaged Request triage from a team member label Jan 23, 2024
@soma-kurisu
Copy link
Author

How did you install the SDK? What's in the dotnet/sdk-manifests folder? Seems like a bad install.

First i used snap-store's NET8 SDK package for installation, but the resulting read-only directory where it's binaries are put in prohibits further dotnet workload installations. So i went on fiddling around as documented in #18933 but in the end i wasn't able to get the maui-android workload to run with NET8. So i completely purged all dotnet artifacts particularly to beware of the dreaded package-mixups documented in the official microsoft-learn article and reinstalled it according the official docs for ubuntu 23.10 where i decided to stay on the official canonical package repo (instead of microsofts provided one for easier future upgrades).

Proofing myself everything worked as expected i newed-up a blazor projected utilizing dotnet tool's provided template. For completeness i'd like to mention since this is a new setup i also went on installing the azure CLI, but this time - lacking any other options - choosing the microsoft package repo for ubuntu jammy.

~$ sudo find / -name sdk-manifests
...
/usr/lib/dotnet/sdk-manifests
...

~$ ls -la /usr/lib/dotnet/sdk-manifests/
total 12
drwxr-xr-x 3 root root 4096 Jan 20 13:29 .
drwxr-xr-x 9 root root 4096 Jan 20 13:29 ..
drwxr-xr-x 9 root root 4096 Jan 20 13:29 8.0.100

~$ dotnet --version
8.0.101

~$ dotnet --list-sdks
8.0.101 [/usr/lib/dotnet/sdk]

~$ ls -la /usr/lib/dotnet/sdk-manifests/8.0.100/
total 36
drwxr-xr-x 9 root root 4096 Jan 20 13:29 .
drwxr-xr-x 3 root root 4096 Jan 20 13:29 ..
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.sdk.aspire
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.workload.emscripten.current
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.workload.emscripten.net6
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.workload.emscripten.net7
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.workload.mono.toolchain.current
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.workload.mono.toolchain.net6
drwxr-xr-x 3 root root 4096 Jan 20 13:29 microsoft.net.workload.mono.toolchain.net7

@soma-kurisu
Copy link
Author

for further details according the mono.toolchain.current:

~$ ls -la /usr/lib/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/
total 12
drwxr-xr-x 3 root root 4096 Jan 20 13:29 .
drwxr-xr-x 9 root root 4096 Jan 20 13:29 ..
drwxr-xr-x 3 root root 4096 Jan 20 13:29 8.0.1

~$ ls -la /usr/lib/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.1/
total 56
drwxr-xr-x 3 root root  4096 Jan 20 13:29 .
drwxr-xr-x 3 root root  4096 Jan 20 13:29 ..
drwxr-xr-x 2 root root  4096 Jan 20 13:29 localize
-rw-r--r-- 1 root root 15596 Jan  6 17:23 WorkloadManifest.json
-rw-r--r-- 1 root root 16677 Jan  6 17:23 WorkloadManifest.targets
-rw-r--r-- 1 root root   674 Jan  6 17:23 WorkloadManifest.Wasi.targets
-rw-r--r-- 1 root root  3947 Jan  6 17:23 WorkloadTelemetry.targets

~$ cat /usr/lib/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.1/WorkloadManifest.json 
{
  "version": "8.0.1",
  "depends-on": {
    "Microsoft.NET.Workload.Emscripten.Current": "8.0.1"
  },
  "workloads": {
    "wasm-tools": {
      "description": ".NET WebAssembly build tools for net8.0",
      "packs": [
        "Microsoft.NET.Runtime.WebAssembly.Sdk",
        "Microsoft.NETCore.App.Runtime.Mono.browser-wasm",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.browser-wasm"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling", "microsoft-net-sdk-emscripten" ],
      "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64"]
    },
    "wasm-experimental": {
      "description": ".NET WebAssembly experimental tooling for net8.0",
      "packs": [
        "Microsoft.NET.Runtime.WebAssembly.Templates",
        "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm",
      ],
      "extends": [ "wasm-tools" ],
      "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
    },
    "wasi-experimental": {
      "description": ".NET WASI experimental for net8.0",
      "packs": [
        "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk",
        "Microsoft.NETCore.App.Runtime.Mono.wasi-wasm",
        "Microsoft.NET.Runtime.WebAssembly.Templates"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling" ],
      "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
    },
    "mobile-librarybuilder": {
      "description": "Mobile SDK for building a self-contained .NET native library",
      "packs": [
        "Microsoft.NET.Runtime.LibraryBuilder.Sdk"
      ],
      "extends": [ "microsoft-net-runtime-android-aot", "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ],
      "platforms": [ "win-x64", "win-arm64", "osx-x64", "osx-arm64" ]
    },
    "microsoft-net-runtime-android": {
      "abstract": true,
      "description": "Android Mono Runtime",
      "packs": [
        "Microsoft.NETCore.App.Runtime.Mono.android-arm",
        "Microsoft.NETCore.App.Runtime.Mono.android-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.android-x64",
        "Microsoft.NETCore.App.Runtime.Mono.android-x86"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling" ],
      "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
    },
    "microsoft-net-runtime-android-aot": {
      "abstract": true,
      "description": "Android Mono AOT Workload",
      "packs": [
        "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x86",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x64",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm64"
      ],
      "extends": [ "microsoft-net-runtime-android" ],
      "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
    },
    "microsoft-net-runtime-ios": {
      "abstract": true,
      "description": "iOS Mono Runtime and AOT Workload",
      "packs": [
        "Microsoft.NETCore.App.Runtime.AOT.Cross.ios-arm64",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.iossimulator-arm64",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.iossimulator-x64"
      ],
      "extends": [ "runtimes-ios" ],
      "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
    },
    "runtimes-ios": {
      "abstract": true,
      "description": "iOS Mono Runtime Packs",
      "packs": [
        "Microsoft.NETCore.App.Runtime.Mono.ios-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling" ],
      "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
    },
    "microsoft-net-runtime-maccatalyst": {
      "abstract": true,
      "description": "MacCatalyst Mono Runtime and AOT Workload",
      "packs": [
        "Microsoft.NETCore.App.Runtime.AOT.Cross.maccatalyst-arm64",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.maccatalyst-x64"
      ],
      "extends": [ "runtimes-maccatalyst" ],
      "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
    },
    "runtimes-maccatalyst": {
      "abstract": true,
      "description": "MacCatalyst Mono Runtime Packs",
      "packs": [
        "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling" ],
      "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
    },
    "microsoft-net-runtime-macos": {
      "abstract": true,
      "description": "MacOS CoreCLR and Mono Runtime Workload",
      "packs": [
        "Microsoft.NETCore.App.Runtime.Mono.osx-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.osx-x64",
        "Microsoft.NETCore.App.Runtime.osx-arm64",
        "Microsoft.NETCore.App.Runtime.osx-x64"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling" ],
      "platforms": [ "osx-arm64", "osx-x64" ]
    },
    "microsoft-net-runtime-tvos": {
      "abstract": true,
      "description": "tvOS Mono Runtime and AOT Workload",
      "packs": [
        "Microsoft.NETCore.App.Runtime.AOT.Cross.tvos-arm64",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.tvossimulator-arm64",
        "Microsoft.NETCore.App.Runtime.AOT.Cross.tvossimulator-x64"
      ],
      "extends": [ "runtimes-tvos" ],
      "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
    },
    "runtimes-tvos": {
      "abstract": true,
      "description": "tvOS Mono Runtime Packs",
      "packs": [
        "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64",
        "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64"
      ],
      "extends": [ "microsoft-net-runtime-mono-tooling" ],
      "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
    },
    "runtimes-windows": {
      "abstract": true,
      "description": "Windows Runtime Packs",
      "packs": [
        "Microsoft.NETCore.App.Runtime.win-x64",
        "Microsoft.NETCore.App.Runtime.win-x86",
        "Microsoft.NETCore.App.Runtime.win-arm64"
      ]
    },
    "microsoft-net-runtime-mono-tooling": {
      "abstract": true,
      "description": "Shared native build tooling for Mono runtime",
      "packs": [
        "Microsoft.NET.Runtime.MonoAOTCompiler.Task",
        "Microsoft.NET.Runtime.MonoTargets.Sdk"
      ]
    }
  },
  "packs": {
    "Microsoft.NET.Runtime.MonoAOTCompiler.Task": {
      "kind": "Sdk",
      "version": "8.0.1"
    },
    "Microsoft.NET.Runtime.MonoTargets.Sdk": {
      "kind": "Sdk",
      "version": "8.0.1"
    },
    "Microsoft.NET.Runtime.LibraryBuilder.Sdk": {
      "kind": "Sdk",
      "version": "8.0.1"
    },
    "Microsoft.NET.Runtime.WebAssembly.Sdk": {
      "kind": "Sdk",
      "version": "8.0.1"
    },
    "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk": {
      "kind": "Sdk",
      "version": "8.0.1"
    },
    "Microsoft.NET.Runtime.WebAssembly.Templates": {
      "kind": "template",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.android-arm": {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.android-arm64": {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.android-x64": {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.android-x86": {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x86": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
        "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
        "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86",
        "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
        "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
        "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64",
        "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
        "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
        "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm",
        "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
        "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
        "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64",
        "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64"
      }
    },
    "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64": {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64": {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.Mono.osx-arm64": {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.Mono.osx-x64": {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.osx-arm64": {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.osx-x64": {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.Mono.ios-arm64" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64" : {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64" : {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.tvos-arm64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64",
      }
    },
    "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64" : {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64" : {
      "kind": "framework",
      "version": "8.0.1",
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.maccatalyst-arm64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.maccatalyst-x64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.tvossimulator-arm64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.tvossimulator-x64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.ios-arm64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64",
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.iossimulator-arm64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.iossimulator-x64": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64"
      }
    },
    "Microsoft.NETCore.App.Runtime.AOT.Cross.browser-wasm": {
      "kind": "Sdk",
      "version": "8.0.1",
      "alias-to": {
        "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
        "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
        "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm",
        "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm",
        "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm",
        "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm"
      }
    },
    "Microsoft.NETCore.App.Runtime.Mono.browser-wasm" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.Mono.wasi-wasm" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.win-x64" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.win-x86" : {
      "kind": "framework",
      "version": "8.0.1"
    },
    "Microsoft.NETCore.App.Runtime.win-arm64" : {
      "kind": "framework",
      "version": "8.0.1"
    }
  }
}

@soma-kurisu
Copy link
Author

further details about my dotnet setup:

~$ ls snap/ | grep dotnet
~$ 

~$ sudo find / -name dotnet
/etc/dotnet
/usr/share/bash-completion/completions/dotnet
/usr/bin/dotnet
/usr/lib/dotnet
/usr/lib/dotnet/dotnet
/usr/lib/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.1/analyzers/dotnet
/usr/lib/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.1/analyzers/dotnet
/home/me/.config/Code - Insiders/User/globalStorage/mindaro.mindaro/file-downloader-downloads/dotnet
/home/me/.config/Code - Insiders/User/globalStorage/mindaro.mindaro/file-downloader-downloads/dotnet/dotnet
/home/me/.nuget/packages/system.text.json/7.0.3/analyzers/dotnet
/home/me/.nuget/packages/microsoft.extensions.configuration.binder/8.0.0/analyzers/dotnet
/home/me/.nuget/packages/microsoft.extensions.options/8.0.0/analyzers/dotnet
/home/me/.nuget/packages/microsoft.aspnetcore.components.analyzers/7.0.14/analyzers/dotnet
/home/me/.nuget/packages/microsoft.aspnetcore.components.analyzers/8.0.0/analyzers/dotnet
/home/me/.nuget/packages/microsoft.extensions.logging.abstractions/8.0.0/analyzers/dotnet
/home/me/.nuget/packages/microsoft.extensions.logging.abstractions/7.0.0/analyzers/dotnet
/home/me/.nuget/packages/microsoft.extensions.logging.abstractions/7.0.1/analyzers/dotnet

~$ sudo find / -name .dotnet
/tmp/.dotnet
/home/me/.dotnet
/home/me/.config/Code - Insiders/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet

~$ cat /etc/dotnet/install_location
/usr/lib/dotnet

~$ cat /etc/dotnet/install_location_x64 
/usr/lib/dotnet

~$ ls -la /usr/bin/dotnet 
lrwxrwxrwx 1 root root 20 Jan  6 17:23 /usr/bin/dotnet -> ../lib/dotnet/dotnet

~$ ls -la /lib/dotnet 
total 208
drwxr-xr-x   9 root root  4096 Jan 20 13:29 .
drwxr-xr-x 108 root root  4096 Jan 20 13:48 ..
-rwxr-xr-x   1 root root 70904 Jan  6 17:23 dotnet
drwxr-xr-x   3 root root  4096 Jan 20 13:28 host
-rw-r--r--   1 root root  1116 Jan  6 17:23 LICENSE.txt
drwxr-xr-x   3 root root  4096 Jan 20 13:29 metadata
drwxr-xr-x   8 root root  4096 Jan 20 13:29 packs
drwxr-xr-x   3 root root  4096 Jan 20 13:29 sdk
drwxr-xr-x   3 root root  4096 Jan 20 13:29 sdk-manifests
drwxr-xr-x   4 root root  4096 Jan 20 13:29 shared
drwxr-xr-x   3 root root  4096 Jan 20 13:29 templates
-rw-r--r--   1 root root 94355 Jan  6 17:23 ThirdPartyNotices.txt

~$ ls -la .templateengine/
total 16
drwxrwxr-x  4 me me 4096 Jan  8 18:33 .
drwxr-x--- 35 me me 4096 Jan 21 21:32 ..
drwxrwxr-x  4 me me 4096 Jan 20 19:01 dotnetcli
drwxrwxr-x  2 me me 4096 Jan  8 18:33 packages

~$ ls -la .templateengine/dotnetcli/
total 16
drwxrwxr-x 4 me me 4096 Jan 20 19:01 .
drwxrwxr-x 4 me me 4096 Jan  8 18:33 ..
drwxrwxr-x 2 me me 4096 Jan  8 18:33 8.0.100
drwxrwxr-x 2 me me 4096 Jan 20 19:01 8.0.101

~$ ls -la .templateengine/dotnetcli/8.0.101
total 312
drwxrwxr-x 2 me me   4096 Jan 20 19:01 .
drwxrwxr-x 4 me me   4096 Jan 20 19:01 ..
-rw-rw-r-- 1 me me 309055 Jan 20 19:01 templatecache.json

~$ ls -la .templateengine/packages/
total 8
drwxrwxr-x 2 me me 4096 Jan  8 18:33 .
drwxrwxr-x 4 me me 4096 Jan  8 18:33 ..

~$ ls -la .dotnet/
total 36
drwxrwxr-x  5 me me 4096 Jan 20 19:20 .
drwxr-x--- 35 me me 4096 Jan 21 21:32 ..
-rw-rw-r--  1 me me    0 Jan  5 17:17 8.0.100.aspNetCertificateSentinel
-rw-rw-r--  1 me me    0 Jan  5 17:17 8.0.100.dotnetFirstUseSentinel
-rw-rw-r--  1 me me    5 Jan  5 17:17 8.0.100_IsDockerContainer.dotnetUserLevelCache
-rw-rw-r--  1 me me   64 Jan  5 17:17 8.0.100_MachineId.dotnetUserLevelCache
-rw-rw-r--  1 me me    0 Jan  5 17:14 8.0.100.toolpath.sentinel
-rw-rw-r--  1 me me    0 Jan 20 13:32 8.0.101.aspNetCertificateSentinel
-rw-rw-r--  1 me me    0 Jan 20 13:32 8.0.101.dotnetFirstUseSentinel
-rw-rw-r--  1 me me    0 Jan 20 13:32 8.0.101.toolpath.sentinel
drwxrwxr-x  3 me me 4096 Dec 29 21:30 corefx
-rw-rw-r--  1 me me   64 Jan  5 17:17 MachineId.v1.dotnetUserLevelCache
drwxrwxr-x  3 me me 4096 Jan 20 19:20 sdk-advertising
drwxrwxr-x  2 me me 4096 Jan  8 19:55 TelemetryStorageService
-rw-rw-r--  1 me me    0 Jan 20 19:20 .workloadAdvertisingManifestSentinel8.0.100
-rw-rw-r--  1 me me    2 Jan 22 21:18 .workloadAdvertisingUpdates8.0.100

~$ cat .dotnet/8.0.101.toolpath.sentinel 
~$ cat .dotnet/.workloadAdvertisingUpdates8.0.100 
[]

~$ ls -la .dotnet/sdk-advertising/ .dotnet/8.0.101.toolpath.sentinel 
total 12
drwxrwxr-x 3 me me 4096 Jan 20 19:20 .
drwxrwxr-x 5 me me 4096 Jan 20 19:20 ..
drwxrwxr-x 9 me me 4096 Jan 22 21:18 8.0.100

~$ ls -la .dotnet/sdk-advertising/8.0.100/
total 36
drwxrwxr-x 9 me me 4096 Jan 22 21:18 .
drwxrwxr-x 3 me me 4096 Jan 20 19:20 ..
drwxrwxr-x 2 me me 4096 Jan 22 21:18 microsoft.net.sdk.aspire
drwxrwxr-x 2 me me 4096 Jan 22 21:18 microsoft.net.workload.emscripten.current
drwxrwxr-x 2 me me 4096 Jan 22 21:18 microsoft.net.workload.emscripten.net6
drwxrwxr-x 2 me me 4096 Jan 22 21:18 microsoft.net.workload.emscripten.net7
drwxrwxr-x 3 me me 4096 Jan 22 21:18 microsoft.net.workload.mono.toolchain.current
drwxrwxr-x 3 me me 4096 Jan 22 21:18 microsoft.net.workload.mono.toolchain.net6
drwxrwxr-x 3 me me 4096 Jan 22 21:18 microsoft.net.workload.mono.toolchain.net7

~$ tree /lib/dotnet/ -d -I '??' -I '??-*'
/lib/dotnet/
├── host
│   └── fxr
│       └── 8.0.1
├── metadata
│   └── workloads
│       └── 8.0.100
├── packs
│   ├── Microsoft.AspNetCore.App.Ref
│   │   └── 8.0.1
│   │       ├── analyzers
│   │       │   └── dotnet
│   │       │       └── roslyn4.4
│   │       ├── data
│   │       └── ref
│   │           └── net8.0
│   ├── Microsoft.AspNetCore.App.Runtime.ubuntu.23.10-x64
│   │   └── 8.0.1
│   │       ├── data
│   │       └── runtimes
│   │           └── ubuntu.23.10-x64
│   │               └── lib
│   │                   └── net8.0
│   ├── Microsoft.NETCore.App.Host.ubuntu.23.10-x64
│   │   └── 8.0.1
│   │       └── runtimes
│   │           └── ubuntu.23.10-x64
│   │               └── native
│   ├── Microsoft.NETCore.App.Ref
│   │   └── 8.0.1
│   │       ├── analyzers
│   │       │   └── dotnet
│   │       ├── data
│   │       └── ref
│   │           └── net8.0
│   ├── Microsoft.NETCore.App.Runtime.ubuntu.23.10-x64
│   │   └── 8.0.1
│   │       ├── data
│   │       └── runtimes
│   │           └── ubuntu.23.10-x64
│   │               ├── lib
│   │               │   └── net8.0
│   │               └── native
│   └── NETStandard.Library.Ref
│       └── 2.1.0
│           ├── data
│           └── ref
│               └── netstandard2.1
├── sdk
│   └── 8.0.101
│       ├── AppHostTemplate
│       ├── Containers
│       │   ├── build
│       │   └── tasks
│       │       └── net8.0
│       │           └── runtimes
│       │               └── win
│       │                   └── lib
│       │                       └── net8.0
│       ├── Current
│       │   ├── Microsoft.Common.CrossTargeting.targets
│       │   │   └── ImportAfter
│       │   ├── Microsoft.Common.targets
│       │   │   └── ImportAfter
│       │   └── SolutionFile
│       │       └── ImportAfter
│       ├── DotnetTools
│       │   ├── dotnet-dev-certs
│       │   │   └── 8.0.1-servicing.23580.8
│       │   │       └── tools
│       │   │           └── net8.0
│       │   │               └── any
│       │   ├── dotnet-format
│       │   ├── dotnet-user-jwts
│       │   │   └── 8.0.1-servicing.23580.8
│       │   │       └── tools
│       │   │           └── net8.0
│       │   │               └── any
│       │   │                   └── assets
│       │   ├── dotnet-user-secrets
│       │   │   └── 8.0.1-servicing.23580.8
│       │   │       └── tools
│       │   │           └── net8.0
│       │   │               └── any
│       │   │                   └── assets
│       │   └── dotnet-watch
│       │       └── 8.0.101-servicing.23580.21
│       │           └── tools
│       │               └── net8.0
│       │                   └── any
│       │                       ├── hotreload
│       │                       └── middleware
│       ├── Extensions
│       ├── FSharp
│       │   ├── library-packs
│       │   └── runtimes
│       │       └── win
│       │           └── lib
│       │               └── net8.0
│       ├── Microsoft
│       │   └── Microsoft.NET.Build.Extensions
│       │       ├── net461
│       │       │   └── lib
│       │       ├── net462
│       │       │   └── lib
│       │       ├── net47
│       │       │   └── lib
│       │       ├── net471
│       │       │   └── lib
│       │       └── tools
│       │           └── net8.0
│       ├── ref
│       ├── Roslyn
│       │   └── bincore
│       ├── runtimes
│       │   ├── any
│       │   │   └── native
│       │   └── win
│       │       └── lib
│       │           └── net8.0
│       ├── SdkResolvers
│       │   ├── Microsoft.Build.NuGetSdkResolver
│       │   └── Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver
│       ├── Sdks
│       │   ├── FSharp.NET.Sdk
│       │   │   └── Sdk
│       │   ├── Microsoft.Build.Tasks.Git
│       │   │   ├── build
│       │   │   ├── buildMultiTargeting
│       │   │   └── tools
│       │   │       └── core
│       │   ├── Microsoft.Docker.Sdk
│       │   │   └── Sdk
│       │   ├── Microsoft.NET.Sdk
│       │   │   ├── analyzers
│       │   │   │   └── build
│       │   │   │       └── config
│       │   │   ├── codestyle
│       │   │   ├── Sdk
│       │   │   ├── targets
│       │   │   │   └── GenerateDeps
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.BlazorWebAssembly
│       │   │   ├── Sdk
│       │   │   ├── targets
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.Publish
│       │   │   ├── Sdk
│       │   │   ├── targets
│       │   │   │   ├── ComputeTargets
│       │   │   │   ├── CopyTargets
│       │   │   │   ├── DotNetCLIToolTargets
│       │   │   │   ├── PublishProfiles
│       │   │   │   ├── PublishTargets
│       │   │   │   └── TransformTargets
│       │   │   │       └── Transforms
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.Razor
│       │   │   ├── Sdk
│       │   │   ├── source-generators
│       │   │   ├── targets
│       │   │   │   └── Rules
│       │   │   ├── tasks
│       │   │   │   └── net8.0
│       │   │   └── tools
│       │   ├── Microsoft.NET.Sdk.StaticWebAssets
│       │   │   ├── Sdk
│       │   │   ├── targets
│       │   │   ├── tasks
│       │   │   │   └── net8.0
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.Web
│       │   │   ├── analyzers
│       │   │   ├── Sdk
│       │   │   ├── Targets
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.WebAssembly
│       │   │   ├── Sdk
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.Web.ProjectSystem
│       │   │   ├── Sdk
│       │   │   ├── targets
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.NET.Sdk.Worker
│       │   │   ├── Sdk
│       │   │   ├── targets
│       │   │   └── tools
│       │   │       └── net8.0
│       │   ├── Microsoft.SourceLink.AzureRepos.Git
│       │   │   ├── build
│       │   │   ├── buildMultiTargeting
│       │   │   └── tools
│       │   │       └── core
│       │   ├── Microsoft.SourceLink.Bitbucket.Git
│       │   │   ├── build
│       │   │   ├── buildMultiTargeting
│       │   │   └── tools
│       │   │       └── core
│       │   ├── Microsoft.SourceLink.Common
│       │   │   ├── build
│       │   │   ├── buildMultiTargeting
│       │   │   └── tools
│       │   │       └── core
│       │   ├── Microsoft.SourceLink.GitHub
│       │   │   ├── build
│       │   │   ├── buildMultiTargeting
│       │   │   └── tools
│       │   │       └── core
│       │   ├── Microsoft.SourceLink.GitLab
│       │   │   ├── build
│       │   │   ├── buildMultiTargeting
│       │   │   └── tools
│       │   │       └── core
│       │   └── NuGet.Build.Tasks.Pack
│       │       ├── build
│       │       ├── buildCrossTargeting
│       │       └── CoreCLR
│       └── trustedroots
├── sdk-manifests
│   └── 8.0.100
│       ├── microsoft.net.sdk.aspire
│       │   └── 8.0.0-preview.1.23557.2
│       ├── microsoft.net.workload.emscripten.current
│       │   └── 8.0.1
│       ├── microsoft.net.workload.emscripten.net6
│       │   └── 8.0.1
│       ├── microsoft.net.workload.emscripten.net7
│       │   └── 8.0.1
│       ├── microsoft.net.workload.mono.toolchain.current
│       │   └── 8.0.1
│       │       └── localize
│       ├── microsoft.net.workload.mono.toolchain.net6
│       │   └── 8.0.1
│       │       └── localize
│       └── microsoft.net.workload.mono.toolchain.net7
│           └── 8.0.1
│               └── localize
├── shared
│   ├── Microsoft.AspNetCore.App
│   │   └── 8.0.1
│   └── Microsoft.NETCore.App
│       └── 8.0.1
└── templates
    └── 8.0.1

251 directories

@soma-kurisu
Copy link
Author

@marcpopMSFT, as you requested I've listed some details about my setup. Have you any ideas what's going on here? I find it very suspicious that a workload search request won't find any maui workloads:

~$ dotnet workload search 'wasm'

Workload ID                 Description                                     
----------------------------------------------------------------------------
wasm-experimental           workloads/wasm-experimental/description         
wasm-experimental-net7      .NET WebAssembly experimental tooling for net7.0
wasm-tools                  .NET WebAssembly build tools                    
wasm-tools-net6             .NET WebAssembly build tools for net6.0         
wasm-tools-net7             .NET WebAssembly build tools for net7.0         

~$ dotnet workload search 'maui'

Workload ID      Description
----------------------------

~$ dotnet workload search 'android'

Workload ID      Description
----------------------------

~$

@marcpopMSFT
Copy link
Member

The sdk-manifests folder is missing all of the maui manifests which is why the workload is unrecognized and can't be installed.

Including @rbhanda @MichaelSimons @baronfel who might know about the snap install and jammy installs to know if those are incomplete wrt maui.

@soma-kurisu
Copy link
Author

any way - @marcpopMSFT thank you for taking the time and looking at it.
still hoping @rbhanda @MichaelSimons @baronfel have more luck.

@ndr0n
Copy link

ndr0n commented Feb 1, 2024

Hey, i have the exact same problem :)

@soma-kurisu
Copy link
Author

@ndr0n :
(a) also on UB 23.10 ?
(b) also NET 8 installation via snap, its removal afterwards and re-installation via official canonical package repo ?
(c) registration of any other microsoft package repo ?

@Lyra2108
Copy link

I have the same issue with arch linux

@PartedLine
Copy link

I had this same issue on Arch after installing dotnet-sdk 8.0.101 with pacman. I fixed this by downloading dotnet via the install scripts (https://dotnet.microsoft.com/en-us/download/dotnet/scripts) and copying the sdk-manifests from "~/.dotnet/sdk-manifests/8.0.100" to "/usr/share/dotnet/sdk-manifests/8.0.100". Afterwards you are able to install maui-android.
Hope this helps anyone that comes across this issue

@soma-kurisu
Copy link
Author

@PartedLine thx for sharing; But doing it this way puts us back in the pre-packagemanager era where you'll have to fiddle around managing all the sdk and tooling dependencies by your self. I'd say arguable for a not officially supported distro but not the support you might expect from an officially supported distro.

@vpkopylov
Copy link

I have the same problem on ArchLinux. Took a look at arch dotnet-sdk package source code and as far as I can see there is no custom logic there around sdk-manifests. It just grubs the official sdk sources from dotnet/dotnet repo, builds it and copies sdk-manifests folder to usr/share/dotnet.
So maybe there is a problem in dotnet sdk itself?

@amirvenus
Copy link

is android not supported on dotnet 8.0 arm Ubuntu?

dotnet workload search

Workload ID Description

aspire .NET Aspire SDK (Preview)
macos .NET SDK Workload for building macOS applications.
maui-tizen .NET MAUI SDK for Tizen
maui-windows .NET MAUI SDK for Windows
wasi-experimental workloads/wasi-experimental/description
wasm-experimental workloads/wasm-experimental/description
wasm-tools .NET WebAssembly build tools

dotnet workload install android
Workload ID android isn't supported on this platform.

@LawunnKhaing
Copy link

I have the same issue with arch linux

I have the same with arch. Can you solve that now?

@baronfel
Copy link
Member

baronfel commented May 7, 2024

The common thread here is that all of these distributions of the .NET SDK are build using source-build. Source-Build SDKs do not have all of the same workloads as MIcrosoft-authored SDKs. You can read more about this in dotnet/source-build#3242. This is something that I think we will need to address soon.

@baronfel
Copy link
Member

In the meantime, if you need MAUI workloads I'd suggest using the dotnet-install scripts to install a 'local install' of the Microsoft SDK and use that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants