https://devblogs.microsoft.com/dotnet/introducing-net-5/

 

1. 현상

 

dotNet 5.0이 나왔습니다. 한번 써보려고 dotNet 5.0 SDK를 설치하고 VS2019를 업그레이드하고 16.8 이상의 버전을 확인 한 뒤 Solution을 만들고 빌드를 눌렀습니다만 저를 반기는 건 다음과 같은 에러였습니다.

 

컴퓨터에 Framework 어셈블리가 없습니다.

 

 

 

이게 대체 무슨 상황인가 하고 Solution 구성을 뒤져보니 종속성 항목이 좀 이상해 보이는 게 눈에 들어왔습니다.

 

무언가 잘못되었습니다. 좀 더 자세히 보려고 종속성 어셈블리 참조 리스트를 열어봤습니다.

 

슬슬 머리가 아파옵니다. 혹시 프로젝트의 프레임워크 설정이 잘못됐나 하고 프레임워크 설정으로 들어가 봅니다.

 

 

대상 프레임 워크가 없습니다. 여기부터 머리를 쥐어 잡고 해결책을 찾는 대장정이 시작되었습니다.

 

 

 

해결책 1 - SDK 재설치

 

가장 먼저 떠올릴 수 있는 해결책이었습니다. Microsoft 공식 홈페이지로 이동해 dotNet 5.0 SDK를 새로 다운로드하여 제거 후 다시 설치했습니다.

 

여기까지 하고 해결되신 분들은 축하합니다. 뭔가 설치가 잘못됬었나 보네요. 하지만 여기서 해결됐다면 대장정이란 말은 꺼내지도 않았을 겁니다. 제 에러는 여전했으니까요.

 

 

 

해결책 2 - 사용자 변수 확인

 

열심히 구글링을 하다가 저와 유사해 보이는 문제를 가진 분의 글을 찾았습니다: Target framework dropdown empty

 

Target framework dropdown empty

I have VS.NET 2010 Premium installed, but there seems to be an issue when trying to target existing .NET frameworks. When I open properties for a web application project, the only option I get is to

stackoverflow.com

제시된 해결 방법을 요약하면 "환경 변수의 TEMP와 TMP 경로를 같게 해 줘라"입니다. 후다닥 환경변수를 확인해보니 이미 TEMP와 TMP모두 "%USERPROFILE%\AppData\Local\Temp"로 동일했습니다.

 

또한 댓글로 남겨진 해결방법 중 하나인 "계정 이름에서 아포스트로피(Apostrophe, ')를 제거했더니 된다"라는 내용도 있었지만 제 계정명은 영문으로만 이뤄져 있었습니다. 

 

 

 

해결책 3 - global.json 설정

 

또다시 구글링을 하는 도중에 제 문제와 똑같은 문제를 겪은 분의 글을 찾았습니다:  .NET 5 cant be selected as Target Framework in VS2019, reference assemblies not found

 

.NET 5 cant be selected as Target Framework in VS2019, reference assemblies not found

I cant get Visual studio to use .NET 5. The following are my current configuration: Visual Studio Professional 2019 version: 16.7.6 .NET sdk: dotnet-sdk-5.0.100-preview.7.20366.6-win-x64 (see image...

stackoverflow.com

 

제시된 해결방법을 소개하자면 다음과 같습니다.

 

보기-> 터미널 혹은 Ctrl + `를 눌러 터미널을 열고 "dotnet new globaljson"을 입력합니다.

Solution의 루트 폴더로 이동해 global.json을 열어 버전을 추가합니다. 앞서 설치한 버전이 5.0.2 이므로 5.0.2를 추가합니다.

{
  "sdk": {
    "version": "2.2.207",
    "version": "5.0.2"
  }
}

 

그리고 VS2019를 재시작합니다. 해당 글쓴이는 이렇게 해결했지만 제 문제는 여전했습니다.

 

 

 

해결책 4 - 시스템 변수 확인

 

여기까지 해도 해결이 되지 않으신 분들은 저와 같은 현상으로 이번에는 해결하셨으면 좋겠습니다. 해결책 3을 시도하던 도중 이상한 것을 발견했습니다. 해결책 3에서 설명한 대로 터미널을 열고 dotnet 버전을 확인하기 위해 "dotnet --info"를 입력했습니다.

 

아무 생각 없이 넘어갔었는데 경로가 뭔가 이상했습니다. 해결책 1에서 dotNet 5.0을 재설치할 때 확인한 화면하고 뭔가 달랐습니다.

 

 

이제 원인이 명확해졌습니다. 왜 어째서인진 모르겠지만 dotnet 기본 경로가 "C:\Program Files (x86)\dotnet"로 잡혀있었습니다. 왜 이런가 해서 찾아보니 "사용자 변수의 Path"값은 "C:\Program Files\dotnet\"로, "시스템 변수"의 값은 "C:\Program Files (x86)\dotnet\"로 잡혀있는 상황을 확인했습니다.

 

 

시스템 변수를 수정하고 다시 터미널을 열고 dotnet 버전을 확인하기 위해 "dotnet --info"를 입력합니다.

 

그동안 해결하겠다며 삽질하면서 설치한 모든 SDK가 쭉 나오면서 경로가 제대로 잡힌 걸 확인할 수 있습니다. 이제 Solution을 새로 만들고 확인하니 모든 프레임워크가 정상적으로 동작하는 걸 확인할 수 있었습니다.

 

 

 

 

 

 

반응형

+ Recent posts