NETSDK1045 The current .NET SDK does not support targeting .NET ...
msbuild로 솔루션 파일을 빌드했을 때 다음과 같은 오류가 발생합니다.
D:\temp> msbuild D:\temp\testapp\testapp.sln
Microsoft (R) Build Engine version 17.1.0+ae57d105c for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
Build started 2023-01-19 오후 2:51:20.
Project "D:\temp\testapp\testapp.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
Project "D:\temp\testapp\testapp.sln" (1) is building "D:\temp\testapp\testapp\testapp.csproj" (2) on node 1 (default targets).
C:\Program Files\dotnet\sdk\6.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(144,5): error NETSDK1045: The current .NET SDK does not support targeting .NET 7.0. Either target .NET 6.0 or lower, or use a version of the .NET SDK that supports .NET 7.0. [D:\temp\testapp\testapp\testapp.csproj]
Done Building Project "D:\temp\testapp\testapp\testapp.csproj" (default targets) -- FAILED.
Done Building Project "D:\temp\testapp\testapp.sln" (default targets) -- FAILED.
Build FAILED.
자세히 보시면, msbuild가 선택한 닷넷 SDK 버전이 "C:\Program Files\dotnet\sdk\6.0.200"라고 나옵니다. 즉, 7.0 SDK가 설치되었는데도,
c:\temp> dotnet --list-sdks
6.0.200 [C:\Program Files\dotnet\sdk]
7.0.102 [C:\Program Files\dotnet\sdk]
c:\temp> where msbuild
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe
Visual Studio에 포함된 msbuild.exe는 6.0.200을 인식하고 있는 것입니다. 사실, 이에 대한 원인은, .NET 7 SDK를 설치하는 순간에 이미 알려주고 있습니다.
보는 바와 같이 2022 17.4 버전 이상이 필요하다고 하는데, 저것보다 낮으면,
NETSDK1045 오류가 발생하는 것입니다. 이에 대한 문제를 해결하려면 당연히 Visual Studio 2022를 최신 업데이트로 올리면 됩니다. 혹은, 그걸 원하지 않는다면 그냥 "dotnet.exe"를 이용해 곧바로 빌드해도 무방합니다.
c:\temp> dotnet build D:\temp\testapp\testapp.sln
MSBuild version 17.4.1+9a89d02ff for .NET
Determining projects to restore...
All projects are up-to-date for restore.
testapp -> D:\temp\testapp\testapp\bin\Debug\net7.0-windows\testapp.dll
Build succeeded.
0 Warning(s)
0 Error(s)
참고로, 위의 msbuild 메시지에도 나오지만 버전 정보가 "17.4.1"이고, "NETSDK1045" 오류가 발생했을 때는 그 버전이 "17.1.0"이었습니다.
마지막으로, 해당 오류는 preview 버전을 사용할 때도 나올 수 있습니다.
Visual Studio 2022 17.2 버전에서 C# 11 또는 .NET 7.0 preview 적용
; https://www.sysnet.pe.kr/2/0/13080
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]