訓練
學習路徑
.NET 是免費、跨平台且開放原始碼的開發人員平台,可用來建置許多不同類型的應用程式。 您可以透過 .NET 使用多種語言、編輯器及程式庫,為 Web、行動裝置、桌面、遊戲及 IoT 進行建置。
本文將介紹 Windows 支援哪些版本的 .NET、如何安裝 .NET,以及 SDK 和執行階段的差異。
與 .NET Framework 不同,.NET 不受 Windows 版本的限制。 您只能在 Windows 上安裝單一版本的 .NET Framework。 但 .NET 是獨立的,可以安裝在電腦上的任何位置。 某些應用程式可能會包含它們自己的 .NET 副本。
預設情況下,.NET 會安裝到電腦上的 Program Files\dotnet 目錄,除非安裝方法選擇其他目錄。
.NET 是由執行階段和 SDK 所組成。 執行階段會執行 .NET 應用程式,而 SDK 是用來建立應用程式。
Windows 有三個不同的執行階段,可讓不同類型的應用程式執行。 SDK 包含所有三個執行階段,且執行階段的安裝程式可能包含額外的執行階段。 下表描述特定 .NET 安裝程式隨附的執行階段:
安裝程式 | 包含 .NET Runtime | 包含 .NET Desktop Runtime | 包含 ASP.NET Core Runtime |
---|---|---|---|
.NET 執行階段 | 是 | 無 | No |
.NET Desktop Runtime | Yes | 是 | No |
ASP.NET Core Runtime | No | 無 | Yes |
.NET SDK | Yes | .是 | Yes |
若要確保您可以在 Windows 上執行所有 .NET 應用程式,請同時安裝 ASP.NET Core Runtime 和 .NET Desktop Runtime。 ASP.NET Core 執行階段執行 Web 式應用程式,而 .NET 桌面執行階段執行桌面應用程式,例如 Windows Presentation Foundation (WPF) 或 Windows Forms 應用程式。
.NET 有多種安裝方法,某些產品可能會管理它們自己的 .NET 版本。 如果您透過管理自己版本的 .NET 的軟體安裝 .NET,則可能無法在全系統範圍內啟用。 請務必了解透過其他軟體安裝 .NET 的影響。
如果在檢閱下列各節中的清單之後,您不確定應該選擇哪一種方法,則可能想要使用 .NET 安裝程式。
當您想要使用 Visual Studio 開發 .NET 應用程式時,請使用 Visual Studio 來安裝 .NET。 Visual Studio 會管理自己的 .NET 複本。 此方法會安裝 SDK、執行階段和 Visual Studio 範本。
安裝適用於 Visual Studio Code 的 C# 開發套件延伸模組,以開發 .NET 應用程式。 此擴充功能可以使用已安裝的 SDK,也可以為您安裝 SDK。
使用 Windows Installer 套件安裝 .NET,此套件是您執行的可執行檔。 這個方法可以安裝 SDK 和執行階段。 安裝是在全系統上執行的。
當您想要透過命令列管理 .NET 時,請使用 WinGet 來安裝 .NET。 這個方法可以安裝 SDK 和執行階段。 安裝是在全系統上執行的。
一種 PowerShell 指令碼,可將 SDK 或執行階段的安裝自動化。 您可以選擇要安裝的 .NET 版本。
下表列出目前支援的 .NET 版本,以及其支援的 Windows 版本。 這些版本會保持支援到 .NET 的版本達到終止支援或 Windows 的版本達到生命週期結束為止。
提示
提醒您,下表適用於新式 .NET (與 .NET Framework 相反)。 若要安裝 .NET Framework,請參閱 .NET Framework 安裝指南。
Windows 10 版本的服務終止日期依版本而不同。 下表僅列出家用版、專業版、專業教育版和工作站專業版。 如需特定詳細資料,請參閱 Windows 生命週期記事表。
作業系統 | .NET 9 (架構) | .NET 8 (架構) |
---|---|---|
Windows 11 (24H2, 23H2, 22H2 Ent/Edu) | ✔️ x64、x86、Arm64 | ✔️ x64、x86、Arm64 |
Windows 10 (22H2+) | ✔️ x64、x86、Arm64 | ✔️ x64、x86、Arm64 |
Windows Server 2025 Windows Server 2022 Windows Server 2019 Windows Server 版本 1903 或更新版本 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 |
✔️ x64、x86 | ✔️ x64、x86 |
Windows Server Core 2012 (和 R2) | ✔️ x64、x86 | ✔️ x64、x86 |
Nano Server (2022, 2019) | ✔️ x64 | ✔️ x64 |
Windows 8.1 | ❌ | ❌ |
Windows 7 SP1 ESU | ❌ | ❌ |
提示
+
符號代表最低版本。
Windows 7 和 Windows 8.1 不再支援 .NET 版本。 最後支援的版本是 .NET 6,支援於 2024 年 11 月 12 日結束。
任何仍在支援的 .NET 版本仍支援 Windows Server 2012 。
這三個版本的 Windows 都需要安裝進一步的相依性:
作業系統 | 必要條件 |
---|---|
Windows 7 SP1 ESU | - Microsoft Visual C++ 2015-2019 可轉散發套件 64 位元 / 32 位元 - KB3063858 64 位元 / 32 位元 - Microsoft 根憑證授權單位 2011 (僅限 .NET Core 2.1 離線安裝程式) |
Windows 8.1 | Microsoft Visual C++ 2015-2019 可轉散發套件 64 位元 / 32 位元 |
Windows Server 2012 | Microsoft Visual C++ 2015-2019 可轉散發套件 64 位元 / 32 位元 |
Windows Server 2012 R2 | Microsoft Visual C++ 2015-2019 可轉散發套件 64 位元 / 32 位元 |
當收到下列 dll 相關的錯誤時,也必須滿足上述需求:
以 Arm 為基礎的 Windows 計算機支援 .NET。 下列各節說明安裝 .NET 時應考慮的事項。
在 Arm 架構的 Windows 電腦上,所有 Arm64 版本的 .NET 都會安裝到標準的 C:\Program Files\dotnet\ 資料夾。 不過,x64 版本的 .NET SDK 會安裝到 C:\Program Files\dotnet\x64\ 資料夾。
如果您已同時安裝 x64 和 Arm64 版的 .NET SDK,則可能需要變更將 .NET 新增至系統路徑的環境變數 (例如 PATH
變數)。 此外,某些工具依賴 DOTNET_ROOT
環境變數,它們也需要更新才能指向適當的 .NET SDK 安裝資料夾。
Visual Studio 會安裝自己的 .NET 複本,與其他 .NET 複本分開。 不同版本的 Visual Studio 支援不同版本的 .NET。 最新版的 Visual Studio 一律支援最新版的 .NET。
Visual Studio 安裝程式會安裝並設定 Visual Studio。 某些 Visual Studio 工作負載會包含 .NET,例如 ASP.NET 和網頁程式開發,以及 .NET Multi-Platform App UI。 可以透過 [個別元件] 索引標籤來安裝特定版本的 .NET。
Visual Studio 文件提供下列作法的指示:
如果您使用 Visual Studio 開發 .NET 應用程式,下表會依據目標 .NET SDK 版本,列出所需 Visual Studio 的最低版本。
.NET SDK 版本 | Visual Studio 版本 |
---|---|
9 | Visual Studio 2022 17.12 版或更高版本。 |
8 | Visual Studio 2022 17.8 版或更高版本。 |
7 | Visual Studio 2022 17.4 版或更高版本。 |
6 | Visual Studio 2022 17.0 版或更高版本。 |
5 | Visual Studio 2019 16.8 版或更高版本。 |
3.1 | Visual Studio 2019 16.4 版或更高版本。 |
3.0 | Visual Studio 2019 16.3 版或更高版本。 |
2.2 | Visual Studio 2017 15.9 版或更高版本。 |
2.1 | Visual Studio 2017 15.7 版或更高版本。 |
若您已安裝 Visual Studio,可以使用下列步驟檢查您的版本。
如需詳細資訊,請參閱 .NET SDK、MSBuild 和 Visual Studio 版本控制。
Visual Studio Code 是一個功能強大的輕量型原始程式碼編輯器,其會在您的桌面上執行。 Visual Studio Code 可以使用您系統上已安裝的 SDK。 此外,C# Dev Kit 擴充功能將為您安裝 .NET (如果尚未安裝)。
有關透過 Visual Studio Code 安裝 .NET 的說明,請參閱「在 VS Code 中開始使用 C#」。
.NET 的下載頁面提供 Windows Installer 可執行檔。
開啟 web 瀏覽器並巡覽至 https://dotnet.microsoft.com/download/dotnet。
選取您想要下載的 .NET 版本,例如9.0。
尋找 SDK 或執行階段方塊,其中包含用於下載 .NET 的連結。
在 [安裝程式] 資料行底下,尋找 [Windows] 資料列,然後選取 CPU 架構的連結。 如果您不確定,請選取 x64,因為其是最常用的。
瀏覽器應該會自動下載安裝程式。
提示
下圖顯示 SDK,但您也可以下載執行階段。
開啟 Windows 檔案總管並瀏覽至下載檔案的位置,最有可能是您的 Downloads 資料夾。
按兩下檔案以安裝 .NET。
Windows Installer 對話方塊即會開啟。
選取 [安裝] 並遵循指示來安裝 .NET。
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
使用 /?
參數顯示選項清單。
如果要靜默安裝 .NET (例如在生產環境中或支援持續整合),請使用下列選項:
/install
安裝 .NET。
/quiet
禁止顯示任何 UI 和提示。
/norestart
Suppresses any attempts to restart.
dotnet-sdk-9.0.100-win-x64.exe /install /quiet /norestart
提示
安裝程式傳回結束代碼 0,表示成功;傳回結束代碼 3010,表示需要重新啟動。 任何其他值最有可能是錯誤碼。
.NET 安裝程式可執行文件是獨立的產品,可在 Windows 上使用 Microsoft Update (MU) 來提供服務。 MU 與 Windows Update (WU) 不同,它用來服務 .NET Framework 等操作系統元件。
.NET 支援版本的安全性和非安全性修正都是透過 MU 使用多個散發通道來提供。 自動更新 (AU) 與使用者和取用者相關,而 Windows Server Update Services (WSUS) 和 Windows Update 目錄則與 IT 系統管理員相關。
.NET 安裝程式可執行檔支援跨不同架構和元件的主要和次要版本並存安裝,例如運行時間和 SDK。 例如,您可以安裝 6.0.15 (x64) 和 6.0.17 (x86) 運行時間。 當 MU 觸發程式時,它會為這兩個安裝提供最新的安裝程式。
雖然大部分的使用者偏好保持最新狀態,但可以使用下表中的登錄機碼來封鎖 .NET 更新。
.NET 版本 | 登錄機碼 | 名稱 | 類型 | 值 |
---|---|---|---|---|
全部 | HKLM\SOFTWARE\Microsoft\.NET | BlockMU | REG_DWORD | 0x00000001 |
.NET 9 | HKLM\SOFTWARE\Microsoft\.NET\9.0 | BlockMU | REG_DWORD | 0x00000001 |
.NET 8 | HKLM\SOFTWARE\Microsoft\.NET\8.0 | BlockMU | REG_DWORD | 0x00000001 |
.NET 7 | HKLM\SOFTWARE\Microsoft\.NET\7.0 | BlockMU | REG_DWORD | 0x00000001 |
.NET 6 | HKLM\SOFTWARE\Microsoft\.NET\6.0 | BlockMU | REG_DWORD | 0x00000001 |
.NET 5 | HKLM\SOFTWARE\Microsoft\.NET\5.0 | BlockMU | REG_DWORD | 0x00000001 |
.NET Core 3.1 | HKLM\SOFTWARE\Microsoft\.NET\3.1 | BlockMU | REG_DWORD | 0x00000001 |
.NET Core 2.1 | HKLM\SOFTWARE\Microsoft\.NET\2.1 | BlockMU | REG_DWORD | 0x00000001 |
WSUS 和 Microsoft 更新目錄支援伺服器作業系統的更新,但不支援 AU。 伺服器作業系統可以選擇使用下列登錄機碼透過 AU 接收更新。
.NET 版本 | 登錄機碼 | 名稱 | 類型 | 值 |
---|---|---|---|---|
全部 | HKLM\SOFTWARE\Microsoft\.NET | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
.NET 9 | HKLM\SOFTWARE\Microsoft\.NET\9.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
.NET 8 | HKLM\SOFTWARE\Microsoft\.NET\8.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
.NET 7 | HKLM\SOFTWARE\Microsoft\.NET\7.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
.NET 6 | HKLM\SOFTWARE\Microsoft\.NET\6.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
.NET 5 | HKLM\SOFTWARE\Microsoft\.NET\5.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
.NET Core 3.1 | HKLM\SOFTWARE\Microsoft\.NET\3.1 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
安裝程式可執行檔一律會先安裝新內容,再移除先前的安裝。 拿掉舊版運行時間時,正在執行的應用程式可能會中斷或當機。 若要將更新 .NET 的影響降到最低,您可以使用登錄機碼指定何時應移除先前的 .NET 安裝。
.NET 版本 | 登錄機碼 | 名稱 | 類型 | 值 |
---|---|---|---|---|
全部 | HKLM\SOFTWARE\Microsoft\.NET | RemovePreviousVersion | REG_SZ | always 、 never 或 nextSession |
.NET 9 | HKLM\SOFTWARE\Microsoft\.NET\9.0 | RemovePreviousVersion | REG_SZ | always 、 never 或 nextSession |
.NET 8 | HKLM\SOFTWARE\Microsoft\.NET\8.0 | RemovePreviousVersion | REG_SZ | always 、 never 或 nextSession |
never
會保留先前的安裝,而且需要手動介入才能移除先前的 .NET 安裝。always
在安裝新版本之後,會移除先前的安裝。 這是 .NET 中的預設行為。nextSession
會延遲移除,直到系統管理員群組中成員的下一個登入會話為止。always
。當移除延遲時,安裝程式會將命令 寫入 RunOnce 登錄機碼以卸載舊版。 只有在 Administrators 群組中的使用者登入計算機時,才會執行命令。
注意
此功能僅適用於 .NET 8 (8.0.11)、9 和更新版本的 .NET。 它只適用於獨立安裝程式可執行檔,並影響使用它們之 WinGet 等散發套件。
您可以使用 winget.exe
工具,透過 Windows 封裝管理員服務,來安裝及管理 .NET。 如需如何安裝和使用 WinGet 的詳細資訊,請參閱使用 winget 工具來安裝和管理應用程式。
若要為全系統安裝 .NET,請使用系統管理權限執行安裝。
.NET WinGet 套件如下:
Microsoft.DotNet.Runtime.9
—.NET Runtime 9.0Microsoft.DotNet.AspNetCore.9
—ASP.NET Core Runtime 9.0Microsoft.DotNet.DesktopRuntime.9
—.NET Desktop Runtime 9.0Microsoft.DotNet.SDK.9
—.NET SDK 9.0Microsoft.DotNet.Runtime.8
—.NET Runtime 8.0Microsoft.DotNet.AspNetCore.8
—ASP.NET Core Runtime 8.0Microsoft.DotNet.DesktopRuntime.8
—.NET Desktop Runtime 8.0Microsoft.DotNet.SDK.8
—.NET SDK 8.0如果您安裝 SDK,則不需要安裝對應的執行階段。
開啟終端機,例如 PowerShell 或命令提示字元。
執行 winget install
命令,並傳遞 SDK 套件的名稱:
winget install Microsoft.DotNet.SDK.9
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
有您可以安裝的不同執行階段。 請參閱選擇正確的執行階段一節,以了解每個執行階段隨附的內容。
開啟終端機,例如 PowerShell 或命令提示字元。
執行 winget install
命令,並傳遞 SDK 套件的名稱:
winget install Microsoft.DotNet.DesktopRuntime.9
winget install Microsoft.DotNet.AspNetCore.9
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
使用 winget search
命令來搜尋您要安裝的不同套件版本。 例如,下列命令會搜尋所有可透過 WinGet 取得的 .NET SDK:
winget search Microsoft.DotNet.SDK
搜尋結果會隨著每個套件識別碼列印在資料表中。
Name Id Version Source
----------------------------------------------------------------------------------------------
Microsoft .NET SDK 9.0 Microsoft.DotNet.SDK.9 9.0.100 winget
Microsoft .NET SDK 8.0 Microsoft.DotNet.SDK.8 8.0.300 winget
Microsoft .NET SDK 7.0 Microsoft.DotNet.SDK.7 7.0.409 winget
Microsoft .NET SDK 6.0 Microsoft.DotNet.SDK.6 6.0.422 winget
Microsoft .NET SDK 5.0 Microsoft.DotNet.SDK.5 5.0.408 winget
Microsoft .NET SDK 3.1 Microsoft.DotNet.SDK.3_1 3.1.426 winget
如果預覽版本可用,請將標識碼中的版本號碼取代為一個字Preview
。 下列範例會安裝預覽版的 .NET Desktop Runtime:
winget install Microsoft.DotNet.DesktopRuntime.Preview
針對持續整合和非管理員安裝,建議透過 dotnet-install
PowerShell 指令碼安裝 .NET。 如果您要在系統上安裝 .NET 以便正常使用,請使用 .NET 安裝程式或 Windows 封裝管理員安裝方法。
根據預設,此指令碼會安裝最新的長期支援 (LTS) 版本 (亦即 .NET 8)。 您可以透過指定 -Channel
參數來選擇特定版本。 包含 -Runtime
參數以安裝執行階段。 否則,指令碼會安裝 SDK。 指令碼可在 https://dot.net/v1/dotnet-install.ps1 取得,而原始程式碼裝載於 GitHub。
如需指令碼的詳細資訊,請參閱 dotnet-install 指令碼參考。
.NET 執行階段是透過提供 -Runtime
參數來安裝。
從 https://dot.net/v1/dotnet-install.ps1 下載安裝指令碼
開啟 PowerShell 並瀏覽至包含指令碼的資料夾。
執行下列命令以同時安裝 Desktop 執行階段和 ASP.NET Core 執行階段,來取得最大相容性:
dotnet-install.ps1 -Runtime windowsdesktop
dotnet-install.ps1 -Runtime aspnetcore
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
如果安裝 SDK,您不需要安裝執行階段。
從 https://dot.net/v1/dotnet-install.ps1 下載安裝指令碼
開啟 PowerShell 並瀏覽至包含指令碼的資料夾。
執行下列命令來安裝 .NET SDK。
dotnet-install.ps1
注意
SDK 是透過省略 -Runtime
參數安裝的。
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
下載安裝程式或二進位版本後,請加以驗證以確認檔案未變更或損毀。 您可以驗證電腦上的總和檢查碼,然後將它與下載網站上所報告的內容進行比較。
當您從官方下載頁面下載檔案時,檔案的總和檢查碼將顯示在文字方塊中。 選取 [複製] 按鈕,將總和檢查碼值複製到剪貼簿。
您可以使用 PowerShell 或命令提示字元來驗證您所下載檔案的總和檢查碼。 例如,下列命令會回報 dotnet-sdk-8.0.100-win-x64.exe 檔案的總和檢查碼:
> certutil -hashfile dotnet-sdk-8.0.100-win-x64.exe SHA512
SHA512 hash of dotnet-sdk-8.0.100-win-x64.exe:
248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
CertUtil: -hashfile command completed successfully.
> (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash
248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
將該總和檢查碼與下載網站所提供的值進行比較。
.NET 版本資訊包含可用來驗證您下載檔案之總和檢查碼檔案的連結。 下列步驟描述如何下載總和檢查碼檔案,並驗證 .NET 安裝二進位檔:
位於 https://github.com/dotnet/core/tree/main/release-notes/8.0 的 GitHub 上的 .NET 8 版本資訊頁面包含名為版本的章節。 該章節中的資料表可連結至每個 .NET 8 版本的下載和總和檢查碼檔案:
選取您下載的 .NET 版本的連結。 上一節使用了 .NET SDK 8.0.100,其位於 .NET 8.0.0 版本中。
提示
如果您不確定哪個 .NET 版本包含總和檢查碼檔案,請瀏覽連結,直到找到它為止。
在發行頁面中,您可以看到 .NET Runtime 和 .NET SDK 版本,以及前往總和檢查碼檔案的連結:
複製前往總和檢查碼檔案的連結。
使用下列指令碼,但取代連結以下載適當的總和檢查碼檔案:
Invoke-WebRequest https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt
將總和檢查碼檔案和 .NET 版本檔案下載到相同的目錄時,搜尋總和檢查碼檔案以取得 .NET 下載的總和檢查碼:
驗證通過時,您會看到 True 印出:
> (Get-Content .\8.0.0-sha.txt | Select-String "dotnet-sdk-8.0.100-win-x64.exe").Line -like (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash + "*"
True
如果您看到 False 印出,則您下載的檔案無效,且不應該使用。
安裝 .NET SDK 之後,您可能會在嘗試執行 .NET CLI 命令時遇到問題。 本節匯集了這些常見問題,並提供其解決方法。
hostfxr.dll
/ api-ms-win-crt-runtime-l1-1-0.dll
/ api-ms-win-cor-timezone-l1-1-0.dll
遺失您很可能同時安裝了 x86 (32 位元) 和 x64 (64 位元) 版本的 .NET SDK。 這會造成衝突。因為當您執行 dotnet
命令時,原本應解析為 x64 版本,卻解析成了 x86 版本。 修正此問題的方法是將 %PATH%
變數調整成先解析 x64 版本。
您可以執行 where.exe dotnet
命令,確認是否安裝了這兩個版本。 執行此命令之後,應會列出 Program Files\ 與 Program Files (x86)\ 兩個資料夾項目。 如果 Program Files (x86)\ 資料夾在前 (如以下範例所示),代表不正確,您應該繼續下一個步驟。
> where.exe dotnet
C:\Program Files (x86)\dotnet\dotnet.exe
C:\Program Files\dotnet\dotnet.exe
如果是 Program Files\ 在前的正確狀態,代表沒有本節討論的問題,而您應該在 GitHub 上建立 .NET 說明要求問題
請按 [Windows] 按鈕,然後鍵入「編輯系統內容變數」進行搜尋。 選取 [編輯系統內容變數]。
[系統內容] 視窗隨即會開啟 [進階] 索引標籤。選取 [環境變數]。
從 [環境變數] 視窗之 [系統變數] 群組下,選取 [路徑] 資料列,然後選取 [編輯] 按鈕。
使用 [上移] 和 [下移] 按鈕,將 C:\Program Files\dotnet\ 移至 C:\Program Files (x86)\dotnet\ 的上方。
確保智慧型應用程式控制 (一項 Windows 功能) 已關閉。 不建議在用於開發的機器上啟用智慧型應用程式控制。 「關閉」以外的任何設定都可能會對 SDK 效能造成負面影響。
訓練
學習路徑
.NET 是免費、跨平台且開放原始碼的開發人員平台,可用來建置許多不同類型的應用程式。 您可以透過 .NET 使用多種語言、編輯器及程式庫,為 Web、行動裝置、桌面、遊戲及 IoT 進行建置。