在 Windows 上安裝 .NET
有許多不同的方式,可在 Windows 上安裝 .NET。 本文可協助您了解 SDK 與執行階段之間的差異、您應該安裝的執行階段,以及您應該用來安裝 .NET 的方法。
.NET 是由執行階段和 SDK 所組成。 執行階段會執行 .NET 應用程式,而 SDK 是用來建立應用程式。
不同於 .NET Framework,不會安裝 .NET,也不會將其繫結至您的 Windows 版本。 您只能在 Windows 上安裝單一版本的 .NET Framework。 .NET 可以安裝在您電腦上的任意處,而有些應用程式可能包含自己的 .NET 複本。
根據預設,除非安裝方法選擇不同的目錄,否則 .NET 會安裝至您電腦上的 Program Files\dotnet 目錄。
選擇正確的執行階段
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 Runtime 會執行任何 Web 應用程式,而 .NET Desktop Runtime 會執行任何傳統型應用程式,例如 Windows Presentation Foundation (WPF) 或 Windows Forms (WinForms) 應用程式。
選擇如何安裝 .NET
有不同的方式來安裝 .NET,而有些產品 (例如 Visual Studio) 可能會管理自己的 .NET 版本。 如果您透過管理自己 .NET 版本的軟體安裝 .NET,則也應該個別安裝 .NET 執行階段,以便您可以執行 .NET 應用程式。
如果在檢閱下列各節中的清單之後,您不確定應該選擇哪一種方法,則可能想要使用 .NET 安裝程式。
開發人員
-
當您想要使用 Visual Studio 開發 .NET 應用程式時,請使用 Visual Studio 來安裝 .NET。 Visual Studio 會管理自己的 .NET 複本。 此方法會安裝 SDK、執行階段和 Visual Studio 範本。
-
安裝適用於 Visual Studio Code 的 C# 開發套件延伸模組,以開發 .NET 應用程式。 這個方法會使用您先前安裝的 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 8 (架構) | .NET 6 (架構) |
---|---|---|
Windows 11 | ✔️ x64、x86、Arm64 | ✔️ x64、Arm64 |
Windows Server 2022 | ✔️ x64、x86 | ✔️ x64、x86 |
Windows 10 版本 1607 或更新版本 | ✔️ x64、x86、Arm64 | ✔️ x64、x86、Arm64 |
Windows 8.1 | ❌ | ✔️ x64、x86 |
Windows 7 SP1 ESU | ❌ | ✔️ x64、x86 |
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 1809+ 版 | ✔️ x64 | ✔️ x64 |
Nano Server 1803 版 | ❌ | ❌ |
提示
+
符號代表最低版本。
Windows 7/8.1/Server 2012
雖然最新版本的 .NET 仍支援 Windows 2012,但 .NET 6 是支援 Windows 7 和 Windows 8.1 的最後一個版本。 這三個版本的 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 相關的錯誤時,也必須滿足上述需求:
- api-ms-win-crt-runtime-l1-1-0.dll
- api-ms-win-cor-timezone-l1-1-0.dll
- hostfxr.dll
Arm 架構的 Windows 電腦
下列各節說明在 Arm 架構的 Windows 電腦上安裝 .NET 時的注意事項。
支援項目
下表描述 Arm 架構的 Windows 電腦支援的 .NET 版本:
.NET 版本 | SDK | 執行階段 | 路徑衝突 | 支援 |
---|---|---|---|---|
8 | Yes | .是 | No | ✔️ |
8 | Yes | .是 | No | ✔️ |
6 | Yes | .是 | No | ✔️ |
6 | Yes | .是 | No | ✔️ |
x86、x64 和 Arm64 版本的 .NET SDK 可彼此獨立存在。 當有新版本發行時,每個架構安裝也必須隨之升級。
路徑差異
在 Arm 架構的 Windows 電腦上,所有 Arm64 版本的 .NET 都會安裝到標準的 C:\Program Files\dotnet\ 資料夾。 不過,x64 版本的 .NET SDK 會安裝到 C:\Program Files\dotnet\x64\ 資料夾。
路徑衝突
如上一節所述,x64 .NET SDK 會安裝到自己的目錄。 如此一來,Arm64 和 x64 版本的 .NET SDK 就能並存於同一部電腦上。 不過,6.0 之前的任何 x64 SDK 都不會受到支援,且會安裝至與 Arm64 版本相同的位置,即 C:\Program Files\dotnet\ 資料夾。 若要安裝不受支援的 x64 SDK,您必須先解除安裝 Arm64 版本。 反之亦然。 您必須解除安裝不受支援的 x64 SDK,才能安裝 Arm64 版本。
路徑變數
如果您已同時安裝 x64 和 Arm64 版的 .NET SDK,則可能需要變更將 .NET 新增至系統路徑的環境變數 (例如 PATH
變數)。 此外,某些工具依賴 DOTNET_ROOT
環境變數,它們也需要更新才能指向適當的 .NET SDK 安裝資料夾。
隨 Visual Studio 安裝
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 文件提供下列作法的指示:
.NET 版本和 Visual Studio
如果您使用 Visual Studio 開發 .NET 應用程式,下表會依據目標 .NET SDK 版本,列出所需 Visual Studio 的最低版本。
.NET SDK 版本 | Visual Studio 版本 |
---|---|
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,可以使用下列步驟檢查您的版本。
- 開啟 Visual Studio。
- 選取 [說明] > [關於 Microsoft Visual Studio]。
- 從 [關於] 對話方塊中找出版本號碼。
如需詳細資訊,請參閱 .NET SDK、MSBuild 和 Visual Studio 版本控制。
使用 Visual Studio Code 安裝
Visual Studio Code 會使用已在您系統上安裝的 .NET 版本。 使用 .NET 安裝程式或 Windows 封裝管理員安裝 .NET。 Visual Studio 會安裝自己的 .NET 複本,而 Visual Studio Code 無法使用此複本。
.NET 應用程式是使用 C# 開發套件延伸模組建立在 Visual Studio Code 中。
首先,遵循其他章節之一中的步驟安裝 .NET SDK,但有關 Visual Studio 的章節除外。
接下來,如果您尚未安裝 Visual Studio Code,請加以安裝。 如需詳細資訊,請參閱 Windows 上的 Visual Studio Code。
最後,安裝 C# 開發套件延伸模組。 如需詳細資訊,請參閱 開始使用 VS Code 中的 C#。
.NET 安裝程式
.NET 的下載頁面提供 Windows Installer 可執行檔。
開啟 web 瀏覽器並巡覽至 https://dotnet.microsoft.com/download/dotnet。
選取您想要下載的 .NET 版本,例如 8.0。
尋找 SDK 或執行階段方塊,其中包含用於下載 .NET 的連結。
在 [安裝程式] 資料行底下,尋找 [Windows] 資料列,然後選取 CPU 架構的連結。 如果您不確定,請選取 x64,因為其是最常用的。
瀏覽器會自動下載 MSI 套件。
提示
下圖顯示 SDK,但您也可以下載執行階段。
開啟 Windows 檔案總管並瀏覽至下載檔案的位置,最有可能是您的 Downloads 資料夾。
按兩下檔案以安裝 .NET。
Windows Installer 對話方塊即會開啟。
選取 [安裝] 並遵循指示來安裝 .NET。
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
命令列選項
如果您想要以無訊息方式安裝 .NET (例如在實際執行環境中) 或支援持續整合,請使用下列 Windows Installer 選項:
/install
安裝 .NET。/quiet
禁止顯示任何 UI 和提示。/norestart
Suppresses any attempts to restart.
dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart
如需詳細資訊,請參閱標準安裝程式命令列選項。
提示
安裝程式傳回結束代碼 0,表示成功;傳回結束代碼 3010,表示需要重新啟動。 任何其他值最有可能是錯誤碼。
使用 Windows 封裝管理員安裝 (WinGet)
您可以使用 winget.exe
工具,透過 Windows 封裝管理員服務,來安裝及管理 .NET。 如需如何安裝和使用 WinGet 的詳細資訊,請參閱使用 winget 工具來安裝和管理應用程式。
若要為全系統安裝 .NET,請使用系統管理權限執行安裝。
.NET WinGet 套件如下:
Microsoft.DotNet.Runtime.8
—.NET Runtime 8.0。Microsoft.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
如果您安裝 SDK,則不需要安裝對應的執行階段。
開啟終端機,例如 PowerShell 或
cmd.exe
。執行
winget install
命令,並傳遞 SDK 套件的名稱:winget install Microsoft.DotNet.SDK.8
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
安裝執行階段
有您可以安裝的不同執行階段。 請參閱選擇正確的執行階段一節,以了解每個執行階段隨附的內容。
開啟終端機,例如 PowerShell 或命令提示字元。
執行
winget install
命令,並傳遞 SDK 套件的名稱:winget install Microsoft.DotNet.DesktopRuntime.8 winget install Microsoft.DotNet.AspNetCore.8
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
搜尋版本
使用 winget search
命令來搜尋您要安裝的不同套件版本。 例如,下列命令會搜尋所有可透過 WinGet 取得的 .NET SDK:
winget search Microsoft.DotNet.SDK
搜尋結果會隨著每個套件識別碼列印在資料表中。
Name Id Version Source
----------------------------------------------------------------------------------------------
Microsoft .NET SDK 9.0 Preview Microsoft.DotNet.SDK.Preview 9.0.100-preview.3.24204.13 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
安裝預覽版本
您可以透過將版本號碼 (例如 8
) 替代為 Preview
一字來安裝預覽版。 下列範例會安裝預覽版的 .NET Desktop Runtime:
winget install Microsoft.DotNet.DesktopRuntime.Preview
使用 PowerShell 安裝
針對持續整合和非管理員安裝,建議透過 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
如果安裝 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
將該總和檢查碼與下載網站所提供的值進行比較。
使用 PowerShell 和總和檢查碼檔案來驗證
.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 命令時遇到問題。 本節匯集了這些常見問題,並提供其解決方法。
- 找不到 .NET SDK
- 建置應用程式的速度比預期慢
hostfxr.dll
/api-ms-win-crt-runtime-l1-1-0.dll
/api-ms-win-cor-timezone-l1-1-0.dll
遺失
找不到 .NET SDK
您很可能同時安裝了 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 效能造成負面影響。
hostfxr.dll
/ api-ms-win-crt-runtime-l1-1-0.dll
/ api-ms-win-cor-timezone-l1-1-0.dll
遺失
安裝 Microsoft Visual C++ 2015-2019 可轉散發套件 (64 位元或 32 位元)。