Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีตรวจสอบว่า .NET Core SDK/Runtime ติดตั้งแล้วหรือไม่

ใช้คำสั่ง CLI dotnet ใน Terminal/Command Prompt เพื่อตรวจสอบการติดตั้ง

คำสั่งหลัก

Command คำอธิบาย Output ตัวอย่าง
dotnet --info ข้อมูลละเอียด: SDK Version, Runtime Versions, OS, RID, Base Path, Global JSON ดูด้านล่าง
dotnet --version SDK Version ที่ใช้อยู่ (Active) 7.0.402
dotnet --list-runtimes Runtime ที่ติดตั้งทั้งหมด (Microsoft.NETCore.App, ASP.NET Core, Desktop) ดูด้านล่าง
dotnet --list-sdks SDK ที่ติดตั้งทั้งหมด ดูด้านล่าง
dotnet --help / dotnet -h รายการคำสั่งทั้งหมด -

ตัวอย่าง Output: dotnet --info

.NET SDK (reflecting any global.json):
 Version:   7.0.402
 Commit:    abc123...

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.19045
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\7.0.402\

Host (useful for support):
  Version: 7.0.12
  Commit:  def456...

.NET SDKs installed:
  6.0.415 [C:\Program Files\dotnet\sdk]
  7.0.402 [C:\Program Files\dotnet\sdk]

.NET Runtimes installed:
  Microsoft.AspNetCore.App 7.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 7.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

ตัวอย่าง Output: dotnet --list-runtimes

Microsoft.AspNetCore.App 7.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 7.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

ตัวอย่าง Output: dotnet --list-sdks

6.0.415 [C:\Program Files\dotnet\sdk]
7.0.402 [C:\Program Files\dotnet\sdk]

ตรวจสอบแบบ Programmatic (ในโค้ด C#)

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

public static class DotNetDetector
{
    public static bool IsDotNetInstalled()
    {
        try
        {
            var psi = new ProcessStartInfo("dotnet", "--version")
            {
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };
            
            using var process = Process.Start(psi);
            process.WaitForExit();
            return process.ExitCode == 0;
        }
        catch
        {
            return false; // dotnet ไม่อยู่ใน PATH
        }
    }
    
    public static string GetDotNetVersion()
    {
        try
        {
            var psi = new ProcessStartInfo("dotnet", "--version")
            {
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };
            using var process = Process.Start(psi);
            string version = process.StandardOutput.ReadToEnd().Trim();
            process.WaitForExit();
            return process.ExitCode == 0 ? version : null;
        }
        catch
        {
            return null;
        }
    }
    
    public static string GetRuntimeVersion()
    {
        // Version ของ Runtime ที่ App กำลังรันอยู่
        return RuntimeInformation.FrameworkDescription; // ".NET 7.0.12"
    }
}

ใน CI/CD Pipeline

# GitHub Actions
- name: Check .NET Version
  run: |
    dotnet --version
    dotnet --list-runtimes
    dotnet --list-sdks

หมายเหตุ

  • SDK = Toolchain สำหรับ Build (Compiler, MSBuild, CLI)
  • Runtime = สำหรับ Run App เท่านั้น (ขนาดเล็กกว่า)
  • Multiple Versions: ติดตั้ง Side-by-side ได้ (แยกโฟลเดอร์)
  • global.json ควบคุม SDK Version ต่อ Project