なぜこのエラーが発生するのかC#プロジェクトを始めようとした矢先、VS Codeが思い通りに動かないことがあります。作業環境が整う代わりに、右下に .NET Core SDK が見つからないという通知が表示されます。エラー内容は以下の通りです。
The .NET Core SDK cannot be found: Error running dotnet --info: spawn dotnet ENOENT
この謎めいた ENOENT というタグは「Error NO ENTry」の略です。簡単に言うと、VS Code が環境を確認するために dotnet --info を実行しようとしましたが、どこにも dotnet 実行ファイルが見つからなかったことを意味します。たとえ5分前にインストールを完了したばかりだとしても、このエラーは発生することがあります。
ステップ 1: インストールの確認まず、SDKが実際にマシンに存在するか確認しましょう。ターミナル(WindowsならPowerShell、macOS/LinuxならTerminal)を開き、次のように入力します。
dotnet --version
もし 8.0.204 や 6.0.421 のようなバージョン番号が表示されれば、SDKは存在しています。単に VS Code がそれを見つけられていないだけです。しかし、ターミナルで「command not found」と表示される場合は、Microsoft公式サイトからインストーラーを入手する必要があります。
プロのヒント:インストールの失敗は、ダウンロードファイルの破損が原因であることがよくあります。私は通常、インストーラーのSHA-256ハッシュを Hash Generator にかけ、Microsoftのチェックサムと比較しています。わずか30秒の確認で、その後の何時間ものトラブルシューティングを回避できます。
ステップ 2: システムPATHの更新VS Code はツールの場所を特定するためにシステムの PATH を参照します。インストーラーが PATH を正しく更新しなかった場合や、シェルを再起動していない場合、dotnet コマンドはグローバルに認識されません。
Windowsでの手順:- Windowsキーを押し、**「環境変数」**と入力します。- **「システム環境変数の編集」を選択します。- 下部にある「環境変数」**をクリックします。- **「システム環境変数」の中にある Path 変数を探し、「編集」**をクリックします。- C:\Program Files\dotnet\ があるか確認します。なければ手動で追加してください。### macOSおよびLinux:シェルに dotnet バイナリの場所を教える必要があります。通常、これは /usr/local/share/dotnet です。.zshrc または .bashrc ファイルを確認し、パスが正しくエクスポート(export)されているか確認してください。
ステップ 3: 拡張機能にSDKの場所を直接指定するシステムの PATH が正しくても、C# 拡張機能が認識しないことがあります。その場合は、拡張機能に実行ファイルの場所を直接教えることで、検索プロセスをバイパスできます。
Ctrl + ,(Macの場合はCmd + ,)を押して設定を開きます。-dotnetPathを検索します。- Dotnet: Dotnet Path(または Omnisharp: Dotnet Path)の項目を探します。- 実行ファイルへのフルパスを入力します。Windowsの場合:C:\Program Files\dotnet\dotnet.exemacOS/Linuxの場合:/usr/local/share/dotnet/dotnet
ステップ 4: アーキテクチャの不一致を解消する(Appleシリコン)M1、M2、M3チップを搭載したMacユーザーは、アーキテクチャの競合によってこの問題に直面することがよくあります。x64版のSDKをインストールしているのに、ARM64版の VS Code を実行している場合(またはその逆)、拡張機能がうまく連携できないことがあります。ターミナルで which dotnet を実行してください。もし /usr/local/bin/dotnet を指しているなら、AppleシリコンのMacに誤ってIntel版のSDKをインストールしていないか確認してください。
ステップ 5: 完全な再起動環境変数は、親プロセスが再起動されるまで更新されないことがよくあります。ウィンドウの再読み込み(Reload Window)だけでなく、以下の手順を試してください。
- VS Code のすべてのインスタンスを閉じます。- ターミナルアプリケーションを終了します。- VS Code を再起動します。- 出力ウィンドウ(ドロップダウンから C# または OmniSharp Log を選択)を確認し、SDKが初期化されたか確認します。## 最終テストポップアップが表示されないクリーンなUIになれば成功です。念のため、VS Code の統合ターミナルを開き、
dotnet --infoを実行してください。SDKの詳細が表示され、IntelliSense(コード補完)が機能し始めれば、ENOENTエラーの解決です。

