M3 mac環境での dotnet: command not found .NET Core エラー解消方法
arm64版のSDKをインストール
M3 Pro Mac環境のVSCode上でC#のファイルを開く機会があり、.NET core SDK
をインストールしました。
該当環境はApple Siliconチップ搭載のMacとなるため、arm64版のSDKをダウンロードします。
% uname -m
arm64
SDKインストール後にVSCodeを見ると、ウインドウ右下に以下のエラーメッセージが表示されました。
.NET Core SDKが見つかりません: Error running dotnet --info: Error: Command failed: dotnet --info /bin/sh: dotnet: command not found /bin/sh: dotnet: command not found .NET Core デバッグは有効になりません。.NET Core SDK がインストールされ、パス上にあることを確認します。
パスが通っていないことが原因かと思い、.zshrc
にインストールしたSDKのパスを追加。
% which dotnet
/usr/local/share/dotnet/dotnet
export DOTNET_ROOT="/usr/local/share/dotnet/dotnet"
export PATH=$PATH:$DOTNET_ROOT
しかしながら、プロジェクトを開き直してもエラーが表示され続ける状況でした。
該当issueに対処法あり
.NET CoreはOSSプラットフォームのため、SDKのリポジトリも公開されています。
試しにdotnet: command not found
で検索してみると、トップにそれらしきissueがありました。
I have macOS 12.0.1
When I open a project on visual studios, the message says that I need to install .net core 3.1. But when I download it, nothing changes and I still cannot run the the command dotnet
I would appreciate, if someone helped meProblem encountered on https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
Operating System: macosProvide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
どうやらarm64アーキテクチャであるM1チップ搭載以後のMac環境にて、同様の事象が発生するようです。ザッとコメントを見たところシンボリックリンクを作成することで解決できる様子。
After installation the symlink is missing, which is likely due to SIP (System Integrity Protection).
I tried to do this manually by disabling SIP and running the following command.
ln -s /usr/local/share/dotnet/dotnet /usr/local/bin/
It creates the file just fine, however terminal still can't see it.
Even adding it to the PATH for .zshrc doesn't work.It looks like dotnet is installed correctly, but just can't be accessed...
This is about as far as I have got.
https://github.com/dotnet/sdk/issues/22910#issuecomment-986186872
というわけで、SDKのインストールパスのシンボリックリンクを張ります。既存のシンボリックリンクを変更する場合は、lnコマンドの -nfs
オプションで上書きできます。
% sudo ln -s /usr/local/share/dotnet/x64/dotnet /usr/local/bin
この対応で無事にエラーメッセージが消えました。
Apple Siliconチップ搭載Macは静音化して快適になったのはありがたいのですが、開発環境構築でこの手のトラブル多いのがなかなか厄介ですね。
Discussion
こちらの記事のお陰でdotnetコマンドが実行できるようになりました
私の環境(m2 mac)では
/usr/local/share/dotnet/dotnet
に実行バイナリがあったためsudo ln -s /usr/local/share/dotnet/dotnet /usr/local/bin
で対応しましたコメントありがとうございます!
お役に立てて何よりです😊