NETSDK1045:目前的 .NET SDK 不支援「較新版本」作為目標。
本文適用於:✔️ .NET Core 2.1.100 SDK 與更新版本
建置工具找不到建置專案所需的 .NET SDK 版本時,會發生此錯誤。 這通常是 .NET SDK 安裝或設定問題所造成。 完整的錯誤訊息與下列範例類似:
NETSDK1045:目前的 .NET SDK 不支援「較新版本」作為目標。 鎖定「較舊版本」或更低版本,或使用支援「較新版本」的 .NET SDK 版本。
下列各節描述此錯誤的一些可能原因。 請檢查每個項目,並查看哪個適合您。 請記住,對環境或設定檔進行變更時,您可能必須重新啟動命令視窗、重新啟動 Visual Studio,或重新開機,變更才會生效。
NET SDK 版本
開啟專案檔 (.csproj、.vbproj 或 .fsproj),然後檢查目標架構。 這是您應用程式嘗試使用的架構版本。
<TargetFramework>netcoreapp3.0</TargetFramework>
請確定機器上已安裝列出的 .NET 版本。 您可以使用下列命令來列出已安裝的版本 (開啟 [開發人員命令提示字元],然後執行此命令):
dotnet --list-sdks
x86 或 x64 結構
每個 .NET SDK 版本都可以用於 x86 和 x64 結構。 專案可能會嘗試尋找錯誤結構的 .NET SDK,或可能未安裝您專案所需結構的 .NET SDK。 檢查您所需結構的安裝資料夾。 例如,在 Windows 上,.NET SDK 的 x86 版本安裝在 C:\Program Files (x86)\dotnet 中,x64 版本則安裝在 C:\Program Files\dotnet 中。 請參閱如何檢查是否已安裝 .NET,然後選擇您的作業系統,以了解如何偵測機器上所安裝的項目。
如果未安裝您所需的版本,則請在 .NET 下載頁面尋找您所需的版本。
Visual Studio 版本
.NET SDK 可能已安裝 Visual Studio 2022,因此升級至較新版本的 Visual Studio 可能會安裝較新的 .NET SDK 並解決此錯誤。 如需詳細資訊,請參閱更新 Visual Studio。
未啟用預覽
如果您已安裝所要求 .NET SDK 版本的預覽,則也需要設定選項,以在 Visual Studio 中啟用預覽。 移至 [工具] > [選項] > [環境] > [預覽功能],並確定已核取 [使用 .NET Core SDK 的預覽]。
Visual Studio 版本
例如,.NET Core 3.0 和更新版本需要 Visual Studio 2019。 升級至 Visual Studio 2019 16.3 版或更新版本以建置專案。
PATH 環境變數
建置工具會使用 PATH 環境變數來尋找正確的 .NET 建置工具版本。 如果 PATH 環境變數包含舊版建置工具的直接路徑,則可能會顯示此錯誤訊息。 請確定 PATH 環境變數中 .NET 工具的唯一路徑是最上層 dotnet 資料夾,例如,C:\Program Files\dotnet。 不正確的 PATH 範例將會類似 C:\Program Files\dotnet\2.1.0\sdks。
MSBuildSDKPath 環境變數
檢查 MSBuildSDKPath 環境變數。 MSBuild 會辨識此選用環境變數,而且,如果設定,則會覆寫預設值。 這可能會設定為特定較舊 .NET SDK 版本。 如果已設定,則請嘗試將其刪除,然後重建您的專案。
global.json 檔案
檢查專案和方案中根資料夾中是否有global.json檔案,以及將目錄鏈結至磁碟區根目錄,因為它可以是資料夾結構中的任何位置。 如果其包含 SDK 版本,則請刪除 sdk
節點和其所有子系,或將其更新為所需的較新 .NET 版本。
{
"sdk": {
"version": "2.1.0"
}
}
不需要 global.json 檔案,因此,如果其未包含 sdk
節點以外的任何項目,則您可以刪除整個檔案。
Directory.build.props 檔案
Directory.build.props 檔案是可設定全域屬性的選用 MSBuild 檔案。 檢查方案資料夾中的這些檔案,並從目錄鏈結往上檢查到磁碟區的根目錄,因為這些檔案可以在資料夾結構中的任何位置。 尋找 TargetFramework
元素,或可覆寫您所需設定的 MSBuildSDKPath
設定。