dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.71k stars 1.06k forks source link

M1 Apple Monterey: Dotnet tool not found in zsh shell #22588

Open sshquack opened 2 years ago

sshquack commented 2 years ago

Describe the bug

Installing VS x64 on M1 Apple silicon macOS Monterey and launching a global tool does not work out of the box.

To Reproduce

Exceptions (if any)

❯ dotnet-format
zsh: command not found: dotnet-format

Further technical details

Runtime Environment: OS Name: Mac OS X OS Version: 12.0 OS Platform: Darwin RID: osx-x64 Base Path: /usr/local/share/dotnet/sdk/5.0.402/

Host (useful for support): Version: 5.0.11 Commit: f431858f8b

.NET SDKs installed: 3.1.414 [/usr/local/share/dotnet/sdk] 5.0.402 [/usr/local/share/dotnet/sdk]

.NET runtimes installed: Microsoft.AspNetCore.App 3.1.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 3.1.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

- The IDE (VS / VS Code/ VS4Mac) you're running on, and its version

Visual studio 2019 visualstudioformacinstaller-8.10.13.2

- Zsh version

❯ zsh --version zsh 5.8 (x86_64-apple-darwin21.0)

sshquack commented 2 years ago

If ~/.dotnet/tools is in the $PATH, I would have expected the dotnet-format binary located at ~/.dotnet/tools/dotnet-format to have been found. Turns out this is because ~ is not expandable in $PATH?

To confirm this, if I explicitly add export PATH="$HOME/.dotnet/tools:$PATH" zsh was able to find the tool. So it seems like the dotnet installer for mac should add $HOME/.dotnet/tools to $PATH instead of ~/.dotnet/tools

KalleOlaviNiemitalo commented 2 years ago

Similar problems have been discussed in https://github.com/dotnet/sdk/issues/22214 and https://github.com/dotnet/sdk/issues/9415. The .NET SDK installer supposedly displays a message saying how to manually configure PATH for zsh; is that message at all visible when .NET SDK is installed by Visual Studio for Mac?

sshquack commented 2 years ago

@KalleOlaviNiemitalo There is a message when installing a tool using the CLI dotnet tool install ... but the VS for mac installer does NOT show this. I will add a comment to https://github.com/dotnet/sdk/issues/22214 because it looks like a similar issue

jrdodds commented 2 years ago

The issue can be reproduced on Intel based macs. It's not an Apple Silicon (aka M1) issue.

jrdodds commented 2 years ago

@sshquack changing the content of the /etc/paths.d/dotnet-cli-tools file from ~/.dotnet/tools to $HOME/.dotnet/tools will not resolve the issue. The paths in the files in /etc/paths.d must be literal paths.

cicorias commented 1 year ago

This occurs on Mac arm too (M1/m2) Apple Silicon and with 7.x of the dotnet sdk. Really need to address this as it causes such problems for folks that are putting dotnet on their Macs.