sdk: dotnet workload install wasm-tools does not install on Linux

I run sudo dotnet workload install wasm-tools, it says that installation was successful. When I then run dotnet workload list it shows no workloads.

Output of installation:

$ sudo dotnet workload install wasm-tools

Welcome to .NET 6.0!
---------------------
SDK Version: 6.0.113

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only).
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------

Skip NuGet package signing validation. NuGet signing validation is not available on Linux or macOS https://aka.ms/workloadskippackagevalidation .
Updated advertising manifest microsoft.net.workload.emscripten.
Updated advertising manifest microsoft.net.workload.mono.toolchain.
Installing workload manifest microsoft.net.workload.emscripten version 6.0.15…
Installing workload manifest microsoft.net.workload.mono.toolchain version 6.0.15…
Installing pack Microsoft.NET.Runtime.WebAssembly.Sdk.net6 version 6.0.13...
Writing workload pack installation record for Microsoft.NET.Runtime.WebAssembly.Sdk.net6 version 6.0.13...
Installing pack Microsoft.NETCore.App.Runtime.Mono.net6.browser-wasm version 6.0.13...
Writing workload pack installation record for Microsoft.NETCore.App.Runtime.Mono.net6.browser-wasm version 6.0.13...
Installing pack Microsoft.NETCore.App.Runtime.AOT.Cross.net6.browser-wasm version 6.0.13...
Writing workload pack installation record for Microsoft.NETCore.App.Runtime.AOT.Cross.net6.browser-wasm version 6.0.13...
Installing pack Microsoft.NET.Runtime.MonoAOTCompiler.Task.net6 version 6.0.13...
Writing workload pack installation record for Microsoft.NET.Runtime.MonoAOTCompiler.Task.net6 version 6.0.13...
Installing pack Microsoft.NET.Runtime.MonoTargets.Sdk.net6 version 6.0.13...
Writing workload pack installation record for Microsoft.NET.Runtime.MonoTargets.Sdk.net6 version 6.0.13...
Installing pack Microsoft.NET.Runtime.Emscripten.Node.net6 version 6.0.13...
Writing workload pack installation record for Microsoft.NET.Runtime.Emscripten.Node.net6 version 6.0.13...
Installing pack Microsoft.NET.Runtime.Emscripten.Sdk.net6 version 6.0.13...
Writing workload pack installation record for Microsoft.NET.Runtime.Emscripten.Sdk.net6 version 6.0.13...
Garbage collecting for SDK feature band(s) 6.0.100...

Successfully installed workload(s) wasm-tools.

Output of workload list:

dotnet workload list

Installed Workload Ids
----------------------

Use `dotnet workload search` to find additional workloads to install.

Further technical details

dotnet info:

Note: The OS tuxedo is basically Ubuntu.

.NET SDK (reflecting any global.json):
 Version:   6.0.113
 Commit:    4a23b50f97

Runtime Environment:
 OS Name:     tuxedo
 OS Version:  22.04
 OS Platform: Linux
 RID:         ubuntu.22.04-x64
 Base Path:   /usr/lib/dotnet/sdk/6.0.113/

global.json file:
  Not found

Host:
  Version:      6.0.13
  Architecture: x64
  Commit:       1af80ba017

.NET SDKs installed:
  6.0.113 [/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.13 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.13 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

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

Learn about .NET Runtimes and SDKs:
  https://aka.ms/dotnet/runtimes-sdk-info

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 20 (9 by maintainers)

Most upvoted comments

Thanks @tmds!

Thanks, it worked! And now it lists the installed workloads:

Great!

For some extra context: when the installable workload feature got added to the sdk, we wanted to avoid the sudo install in source-built .NET because it adds files to the system dotnet location.

A source-build sdk includes a userlocal file which causes the workload to be installed in a user folder instead.

See https://github.com/dotnet/sdk/issues/18104 and https://github.com/dotnet/sdk/pull/18823.

❯ find $(dirname $(readlink -f $(command -v dotnet))) -name userlocal /usr/lib/dotnet/metadata/workloads/6.0.100/userlocal

Good. This makes install work without sudo.

I couldn’t execute the workload command without sudo due to Access to the path ‘/home/ubuntu/.dotnet/6.0.116.toolpath.sentinel’ is denied:

I imagine this happens because you ran the command with sudo previously.

Try this:

sudo rm -rf ~/.dotnet
dotnet workload install wasm-tools