Tại sao lỗi này xảy raBạn đã sẵn sàng bắt đầu một dự án C#, nhưng VS Code lại có ý định khác. Thay vì một môi trường làm việc sẵn sàng, một thông báo hiện lên ở góc dưới bên phải thông báo rằng .NET Core SDK bị thiếu. Lỗi hiển thị như sau:
The .NET Core SDK cannot be found: Error running dotnet --info: spawn dotnet ENOENT
Mã lỗi ENOENT khó hiểu này là viết tắt của "Error NO ENTry." Nói một cách đơn giản, VS Code đã cố gắng chạy lệnh dotnet --info để kiểm tra môi trường của bạn nhưng không thể tìm thấy tệp thực thi dotnet ở bất kỳ đâu. Điều này xảy ra ngay cả khi bạn vừa mới hoàn tất cài đặt cách đây năm phút.
Bước 1: Xác minh cài đặt của bạnTrước tiên, hãy kiểm tra xem SDK thực sự có trên máy của bạn hay không. Mở terminal—PowerShell trên Windows hoặc Terminal trên macOS/Linux—và nhập:
dotnet --version
Nếu bạn thấy số phiên bản như 8.0.204 hoặc 6.0.421, SDK đã tồn tại; chỉ là VS Code không nhìn thấy nó. Tuy nhiên, nếu terminal trả về "command not found," bạn cần tải bộ cài đặt từ trang chủ chính thức của Microsoft.
Mẹo nhỏ: Tệp tải về bị hỏng là nguyên nhân phổ biến khiến cài đặt thất bại. Tôi thường chạy mã băm SHA-256 của bộ cài đặt qua Hash Generator để so sánh với mã checksum của Microsoft. Việc kiểm tra nhanh trong 30 giây này sẽ giúp bạn tiết kiệm hàng giờ khắc phục sự cố sau này.
Bước 2: Cập nhật PATH của hệ thốngVS Code dựa vào PATH của hệ thống để định vị các công cụ. Nếu bộ cài đặt không cập nhật PATH chính xác, hoặc nếu bạn chưa khởi động lại shell, lệnh dotnet sẽ không được nhận diện trên toàn hệ thống.
Hướng dẫn cho Windows:- Nhấn phím Windows và nhập "Environment Variables".- Chọn Edit the system environment variables.- Nhấp vào Environment Variables ở phía dưới.- Tìm biến Path trong mục System variables và nhấp vào Edit.- Kiểm tra xem có C:\Program Files\dotnet\ chưa. Nếu thiếu, hãy thêm nó vào một cách thủ công.### macOS và Linux:Shell của bạn cần biết nơi chứa tệp thực thi dotnet. Thông thường, đường dẫn là /usr/local/share/dotnet. Hãy kiểm tra tệp .zshrc hoặc .bashrc và đảm bảo đường dẫn đã được export chính xác.
Bước 3: Trỏ trực tiếp Extension đến SDKĐôi khi PATH hệ thống vẫn ổn, nhưng extension C# vẫn "cứng đầu". Bạn có thể bỏ qua việc tìm kiếm tự động bằng cách chỉ định chính xác nơi chứa tệp thực thi cho extension.
- Nhấn
Ctrl + ,(hoặcCmd + ,trên Mac) để mở Settings.- Tìm kiếmdotnetPath.- Tìm trường Dotnet: Dotnet Path (hoặc Omnisharp: Dotnet Path).- Nhập đường dẫn đầy đủ đến tệp thực thi của bạn.Trên Windows, sử dụng:C:\Program Files\dotnet\dotnet.exeTrên macOS/Linux, sử dụng:/usr/local/share/dotnet/dotnet
Bước 4: Giải quyết xung đột kiến trúc (Apple Silicon)Người dùng Mac M1, M2 và M3 thường gặp rào cản này do xung đột kiến trúc. Nếu bạn đã cài đặt x64 SDK nhưng đang chạy phiên bản ARM64 của VS Code (hoặc ngược lại), extension có thể gặp khó khăn khi kết nối. Hãy chạy lệnh which dotnet trong terminal. Nếu nó trỏ tới /usr/local/bin/dotnet, hãy đảm bảo rằng bạn không vô tình cài đặt phiên bản Intel của SDK trên máy Mac Silicon của mình.
Bước 5: Khởi động lại hoàn toànCác biến môi trường thường rất khó cập nhật ngay lập tức. Chúng thường không được làm mới cho đến khi tiến trình cha khởi động lại. Đừng chỉ tải lại cửa sổ (reload window); hãy làm theo trình tự sau:
- Đóng tất cả các cửa sổ VS Code đang mở.- Thoát hoàn toàn ứng dụng terminal.- Khởi động lại VS Code.- Kiểm tra cửa sổ Output (chọn C# hoặc OmniSharp Log từ menu thả xuống) để xác nhận SDK đã được khởi tạo.## Kiểm tra cuối cùngThành công là khi giao diện sạch sẽ và không có thông báo lỗi hiện lên. Để chắc chắn, hãy mở terminal tích hợp trong VS Code và chạy lệnh
dotnet --info. Nếu thông tin chi tiết về SDK xuất hiện và IntelliSense bắt đầu gợi ý mã nguồn, bạn đã chính thức khắc phục được lỗiENOENT.

