현재 .NET SDK는 .NET Core 2.1 대상 지정을 지원하지 않습니다. .NET Core 2.0 이하를 대상으로하거나 .NET Core 2.1을 지원하는 .NET SDK를 사용합니다.


81

Visual Studio 2017 v 15.6.0 (Preview 7.0)의 전문가 버전으로 업그레이드를 시도했습니다.

aspnetcore-runtime-2.1.0-preview1-final-win-x64 및 .net core SDK 2.1.4를 설치했습니다.

새 웹 응용 프로그램을 만들 때 다음과 같은 오류가 발생합니다.

"현재 .NET SDK는 .NET Core 2.1 대상 지정을 지원하지 않습니다. 대상 .NET Core 2.0 이하 또는 .NET Core 2.1을 지원하는 .NET SDK 버전을 사용하십시오."

기존 프로젝트를 빌드하려고하면 오류가 발생합니다.

"현재 .NET SDK는 .NET Core 2.1 대상 지정을 지원하지 않습니다. 대상 .NET Core 2.0 이하 또는 .NET Core 2.1을 지원하는 .NET SDK 버전을 사용하십시오."

대상 프레임 워크에 ".net core 2.1"이 표시되지 않습니다.

내 컴퓨터에 global.json 파일이 없습니다.

dotnet --info를 시도하면 다음이 표시됩니다.

c : \ source \ dnacloud \ testapp> dotnet --info .NET 명령 줄 도구 (2.1.100)

Product Information:
Version: 2.1.100
Commit SHA-1 hash: b9e74c6

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

Microsoft .NET Core Shared Framework Host

Version : 2.0.5
Build : 17373eb129b3b05aa18ece963f8795d65ef8ea54

1
이것은 최첨단의 것입니다. 모든 15.x.0 VS 릴리스는 설계 상 애매하게 깨졌습니다. 해결 방법은 올바른 냄새가 나지 않습니다. 도움말> 의견 보내기> 문제 신고를 사용하는 것이 매우 중요합니다. 그렇지 않으면이 문제가 곧 해결되지 않습니다.
Hans Passant

7
"디자인에 의해 손상됨"== 잘못된 디자인. 나는 MS는 빠르게 배포하고 싶어 얻을 수 있지만, 그들이 개발 풍경에 다시 소개되는 종속성 도대체 ... 90 년대에 리눅스 커널 빌드 코드를하려고 노력을 생각 나게
제레미 Holovacs

답변:


69

여기서 문제는 Microsoft가 .NET Core SDK의 번호를 매기는 방법과 많은 사람들을 혼동했다는 것입니다.

원본 포스터의 메시지에서 경로 C : \ Program Files \ dotnet \ sdk \ 2.1.100 \은 .NET Core 2.1 런타임을 나타내는 것으로 보이지 않습니다 (하지만 그렇게 생각할 것입니다).

이 게시물을 보았습니다 . 현재 .NET SDK는 Microsoft 지원 담당자가 혼란을 설명하는 developercommunity.visualstudio.com에서 .NET Core 2.1대상으로하는 것을 지원하지 않습니다 .

"의견을 보내 주셔서 감사합니다.이 문제는 버그가 아니라는 것을 확인했습니다. .NET Core 2.1을 지원하는 첫 번째 SDK는 2.1.300-preview1입니다. 버전 관리가 혼란 스럽기 때문에 2.1.300부터 이제 SDK의 major.minor 버전이 런타임의 major.minor 버전과도 정렬됩니다. "

그래서 ... SDK를 통한 빌드를위한 .NET Core 2.1 지원을 받으려면 최소한 버전 2.1.300으로 SDK를 설치해야합니다 (2.1.2는 .NET Core 2.1이 아니기 때문에) ... 네, 혼란 스럽습니다. 이에 대해 시간을 내주신 Microsoft에 감사드립니다.


22
"이 문제는 버그가 아님을 확인했습니다."저는 이것을 버그라고 부릅니다.
Script Kitty

2
"우리는 이것이 창피하다고 판단했기 때문에 버그라고 부르지 않을 것입니다."
Chris B. Behrens

-안좋아 보인다.
Christian

29

2.2.100-preview3-009430을 설치 한 다음 Visual Studio 15.9.2로 업데이트 한 후이 문제가 발생했습니다.

".NET Core SDK의 미리보기 사용"옵션을 활성화하여 해결했습니다.

  1. 이동 : 도구> 옵션> 프로젝트 및 솔루션> .NET Core

  2. ".NET Core SDK의 미리보기 사용"상자를 선택합니다.

  3. Visual Studio를 다시 시작하고 솔루션을 다시 빌드합니다.

VS 미리보기 옵션


"빌드 도구"만 설치된 빌드 서버에서는 무엇입니까? 거기에는 GUI가 없습니다.
springy76

1
NETSDK1045에서 작동 함 현재 .NET SDK는 .NET Core 3.0 대상 지정을 지원하지 않습니다. 시도 blazor
Vamsi J

2
VS v.16.1에는 그러한 옵션이 없습니다
Eugene Maksimov

9
도구> 옵션> 환경> 미리보기 기능으로 이동되었습니다.
Ludwo

18

설치 .NET Core SDK 2.1.300-preview2가 나를 위해 트릭을했습니다.

업데이트 : 만일을 대비해 최근에 새로운 버전이 출시되었습니다. 당신은 (ASP.NET 2.2.0-preview1 포함) 2.2.0-preview1에 대한 새로운 .NET 핵심 SDK 다운로드 할 수 있습니다 여기를 .

일반적으로 다음과 같은 오류가 발생하면 이 답변을 참조하십시오 .

현재 .NET SDK는 .NET Core 2.X 대상 지정을 지원하지 않습니다.


내 솔루션은 빌드되지 않았지만 이제 IIS Express는 물리적 루트 'C : \ Projects \ OrchardCore \ src \ OrchardCore.Cms.Web \'와 함께이 오류 'MACHINE / WEBROOT / APPHOST / ORCHARDCORE.CMS.WEB'를 뱉어 내고 프로세스를 시작하지 못했습니다. 명령 줄 'C : \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ ProjectSystem \ VSIISExeLauncher.exe -argFile "C : \ Users \ daves \ AppData \ Local \ Temp \ tmp221C.tmp " ', ErrorCode ='0x80004005 : 0.
David Sopko

@DavidSopko 가장 가능성이 당신이 환경 변수 LAUNCHER_PATH 및 LAUNCHER_ARGS 처리 취할 필요 blog.lextudio.com/...
드미트리 파블로프을

13

문제를 해결했습니다. 원인은 내가 설치했기 때문입니다

  • aspnetcore-runtime-2.1.0-preview1-final-win-x64
  • .net core SDK 2.1.4-x64 버전.
  • 설치는 sdk 파일을 c:\Program Files\dotnet
  • 하지만 VS2017 32bit는 c:\Program Files(x86)\dotnet.

이 문제를 해결하려면

  • x86 버전의 sdk 및 aspnetcore 런타임을 설치했습니다.

  • 새 설치 경로를 가리 키도록 MSBuildSDKsPath 환경 변수를 설정합니다.

  • 제어판에서 사용하지 않는 모든 sdk를 삭제했습니다.

VS2017 업데이트 3 'Microsoft.NET.Sdk.Web' 질문 은이 문제를 해결하는 데 도움이 될 수 없습니다 .


나는 같은 문제에 직면하고 있으며 아마도 지난달 어딘가에 aspnetcore-runtime-2.1.0-preview1-final-win-x64를 설치 했습니다. 내가 어디에서 설치했는지 기억이 나지 않으며 지금 다운로드 할 수있는 링크도 볼 수 없었습니다 (해당 페이지에이 문제가 논의되었을 수 있기를 바랍니다). x86 버전을 어디에서 설치 했습니까? 일반적인 문제로 보이므로 답변에 더 많은 설명을 추가 할 수 있습니까?
rahulaga_dev

1
@RahulAgarwal A는 게임에 늦게 비트,하지만 여전히 올바른 다운로드 페이지를 찾을 수없는 경우, 그것은이다 microsoft.com/net/download/windows가 온 클릭 86 다운로드 링크.
Carsten Gehling

12

https://www.microsoft.com/net/download/visual-studio-sdks

위 사이트에서 SDK를 다운로드 할 수 있습니다.

컴퓨터 경로 C : \ Program Files \ dotnet \ sdk에있는 SDK를 확인하십시오.

Visual Studio에서 대상 프레임 워크 변경 또는 확인,

시작 응용 프로그램 또는 프로젝트 => 응용 프로그램 => 대상 프레임 워크를 마우스 오른쪽 버튼으로 클릭합니다.

프레임 워크를 변경하고 솔루션을 빌드하고 너깃 패키지를 복원 할 수 있습니다.

여기에 이미지 설명 입력


클래스 라이브러리 (.NET Core) 프로젝트를 추가 한 후 OP 오류가 발생했습니다. 타겟 프레임 워크가 기본적으로 설정되지 않았기 때문에 드롭 다운에서 선택하고 저장하면 문제가 해결되었습니다.
jhhwilliams

7

나에게도 똑같은 일이 발생했지만 .NET Core 버전 2.2에서 발생했습니다. 당시 2.2.202였던 .NET Core 2.2 SDK의 최신 버전을 설치했습니다. Visual Studio를 사용하여 Core 2.2 용 새 프로젝트를 만들 수 있었지만 오류가 표시되었습니다.

"현재 .NET SDK는 .NET Core 2.2 대상 지정을 지원하지 않습니다. 대상 .NET Core 2.1 이하 또는 .NET Core 2.2를 지원하는 .NET SDK 버전을 사용하십시오."

내 프로젝트의 대상 프레임 워크가 비어 있고 드롭 다운에 2.2가 표시되지 않았습니다.

.NET Core SDK 2.2.103을 설치 한 후 오류가 사라지고 드롭 다운에 ".NET Core 2.2"가 표시되었습니다.


2

게시를 위해 IIS를 중지하면 문제가 해결되었습니다. 하지만 먼저 net core 2.1 SDK를 설치하고 Visual Studio를 업데이트해야했습니다.


2

.Net Core SDK 2.1.4를 설치하고 문제를 해결하지 않고이 게시물의 다른 답변을 따랐습니다. 마침내 나를 위해 .Net Core SDK 버전 2.1.301 을 설치하고 다른 모든 버전을 제거했습니다. SDK 2.1.4가 .Net Core 2.1을 대상으로 할 수 없지만 SDK 2.1.301이 작업을 수행하는 것처럼 보입니다.


Visual Studio가 2.1.301 옆에 설치되어 있어도 SDK 2.1.401을 사용하지 않는다는 의미입니까?
Bart VdA

2

없는지 확인하십시오. global.json프로젝트에서 .NET SDK 2.1 만 사용하도록하는 파일이 프로젝트 루트 폴더에 .

이 global.json 파일이있는 경우 삭제 한 다음 Visual Studio를 다시 시작합니다.

부끄럽게 들릴지 모르지만 거의 한 시간을 보냈고 2.2를 사용하도록 여러 SDK 버전을 다운로드했습니다.


2

나는 또한 이런 식으로 문제를 해결했습니다.

사용 가능한 dotnet sdk의 버전 확인

C:\Users\me>dotnet --list-sdks

 ##2.1.202 [C:\Program Files\dotnet\sdk]
 ##2.1.505 [C:\Program Files\dotnet\sdk]
 ##2.1.508 [C:\Program Files\dotnet\sdk]
 ##2.1.509 [C:\Program Files\dotnet\sdk]
 ##2.1.511 [C:\Program Files\dotnet\sdk]
 ##2.1.514 [C:\Program Files\dotnet\sdk]
 ##2.1.801 [C:\Program Files\dotnet\sdk]

이러한 모든 버전에서 빌드를 테스트했는데 프로그램 및 기능에서 위의 모든 항목을 제거 할 때까지 작동하지 않습니다. 그런 다음 최신 버전에서 다운로드하십시오.

https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.300-windows-x64-installer

이것은 효과가 있었다. 내가 방금 최신 버전의 dotnet sdk를 설치 한 것처럼 시간을 낭비하지 마십시오. "


1

Rider를 사용하고 있습니다.

현재 .NET SDK는 .NET Core 2.2 대상 지정을 지원하지 않습니다. .NET Core 2.1 이하를 대상으로하거나 .NET Core 2.2를 지원하는 .NET SDK 버전을 사용합니다.

나는 :

$ dotnet --list-sdks
2.1.2 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]

나는 최신 sdk 만 ​​유지하려고 시도했으며 다음과 같이했습니다.

프로젝트 'WebApplication3'로드 실패 : 지정된 SDK 'Microsoft.NET.Sdk.Web'을 찾을 수 없습니다 ..

그래서 모든 것을 제거하고 2.1.602를 다시 설치했습니다. Rider에서 새 프로젝트를 만들었습니다. 그리고 그것은 일했습니다 . 어떻게 해결했는지 이해했다고 말할 수 없습니다 ...

일부 사람들의 문제는 global.json에 연결된 것으로 보입니다.
- https ://docs.microsoft.com/fr-fr/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs= 비주얼 스튜디오
- https://docs.microsoft.com/fr-fr/dotnet/core/tools/global-json
- //docs.microsoft.com/fr-fr/dotnet/core/tools/global-json-https //andrewlock.net/the-sdk-microsoft-net-sdk-web-specified- 찾을 수 없습니다/

이전에 수행 한 다른 작업 (문제가 해결되지 않은 것 같지만 도움이 되었습니까?) :
-Rider를 2018.3.2에서 2018.3.4로 업데이트 (최신). -Mono 설치 (Rider 빌드 설정을 살펴볼 때 Unity의 것을 사용했습니다).
-Jetbrain (Linux에 사용되는 것)의 사용자 지정 MSBuild를 성공하지 못한 채 사용하려고했습니다.
-VS 설치 관리자에서 .NET Core와 관련된 모든 것을 설치합니다.
-최신 VS 커뮤니티 업데이트. -재부팅합니다.

에서 Rider/Build, Execution, Deployement/Toolset and Build나는 지금이 :
모노 실행 : C:\Program Files\Mono\bin\mono.exe
- NET 코어 CLI 실행 : C:\Program Files\dotnet\dotnet.exe
- 사용 MS 빌드 버전 (자동 16.0 감지) :C:\Program - Files\dotnet\sdk\2.1.602\MSBuild.dll


게시물의 마지막 줄과 관련이 있다고 확신합니다. Rider가 실제로 사용하는 MSBuild 버전입니다. 사용하려는 최신 .NET Core SDK에서 제공하는 것을 가리켜 야합니다. 그렇지 않으면 문제가 발생하여 SDK를 다시 설치해야합니다.
rsenna은

0

SDK 2.2.300을 설치 한 후이 오류가 발생하기 시작했습니다. 이 게시물과 다른 게시물을 읽은 후 SDK 2.2.1xx로 다운 그레이드 하고 오류가 사라졌습니다. 참고 : SDK 2.2.300을 제거하고 SDK 2.2.1xx를 설치 한 후 다시 시작해야했습니다.


0

이 문제가 있었고 VS2017을 새로 설치했습니다. 그것은 그것을 고쳤습니다!


0

파이프 라인으로 이동하십시오. 파이프 라인 편집을 클릭합니다. 에이전트 사양 드롭 다운을 클릭합니다. Windows 2019로 변경합니다. 저장 및 대기열을 클릭합니다.

그리고 여기 있습니다. 그것은 나를 위해 잘 작동했습니다.


-1

Microsoft는 나쁜 습관이 만연한 오래된 소프트웨어를 사용하는 기능을 제거하여 Net Core 2.1의 최신 개발 소프트웨어를 조기에 채택한 사람들에게 더 나은 코딩 관행을 장려하고있는 것 같습니다. Net Core 2.0 및 이전 버전은 거의 수명이 다 했으므로 전혀 사용해서는 안됩니다. ( https://blogs.msdn.microsoft.com/dotnet/2018/06/20/net-core-2-0-will-reach-end-of-life-on-september-1-2018/ )

1) Microsoft는 안티 패턴으로 널리 간주되어 코드를 이해하기 어렵 기 때문에 ServiceLocator를 제거했습니다.

2) MVC 응용 프로그램을 개선하기 위해 단일 응답 원칙을 구현하는 Razor 페이지 사용을 장려하기 위해 AccountController가 인증 / 승인에서 제거되었습니다.

과거에 소프트웨어 엔지니어링 표준을 낮추기 위해 구축 된 소프트웨어의 지속성을 높이기 위해 이러한 변경을 피하는 것은 모범 사례로 간주되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.