Visual Studio 2019를 16.4.0으로 업데이트 한 후 대상 프레임 워크 2.2로 테스트를 실행할 수 없습니다.


25

Visual studio 2019버전 16.4.0으로 업데이트 했습니다. 이 버전은 .NET Core SDK3.1.100을 포함 합니다.

그 후 Target Framework2.2 로 프로젝트에서 가지고있는 일부 단위 테스트를 실행하려고했지만 그렇게 할 수는 없습니다. 다음과 같은 오류가 발생합니다.

Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Testhost process exited with error: It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '2.2.0' was not found.
  - The following frameworks were found:
      3.1.0 at [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
You can resolve the problem by installing the specified framework and/or SDK.

위에서 언급 한 경로로 이동하면 3.1.0 폴더 만 발견되었습니다 . 설치된 SDK를 나열하면 다음을 얻습니다.

dotnet --list-sdks 
2.1.602 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
2.1.701 [C:\Program Files\dotnet\sdk]
2.1.801 [C:\Program Files\dotnet\sdk]
2.1.802 [C:\Program Files\dotnet\sdk]
2.2.100 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]
2.2.207 [C:\Program Files\dotnet\sdk]
2.2.300 [C:\Program Files\dotnet\sdk]
2.2.301 [C:\Program Files\dotnet\sdk]
2.2.401 [C:\Program Files\dotnet\sdk]
2.2.402 [C:\Program Files\dotnet\sdk]
3.1.100 [C:\Program Files\dotnet\sdk]

설치된 런타임을 요청 하면 다음을 얻습니다.

dotnet --list-runtimes
Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

따라서 나열된 런타임에 Microsoft.AspNetCore.App ', 버전'2.2.0 '이 설치되어 있습니다.

반면에, 내가하는 경우 : 테스트 내에서 단위 테스트 프로젝트의 'dotnet 테스트' Package Manager Console가 실행 중입니다.

나는 또한 Visual Studio Code변경 사항 을 설치하지 않고 해당 테스트를 디버그 할 수도 있습니다.

따라서 여기에서 조금 잃어 버렸고 예를 들어 C : \ Program Files \ dotnet \ shared \에서 2.2.0 폴더를 수동으로 복사하려고 시도했지만 그 후에 테스트를 실행하는 동안 다른 오류가 발생했습니다.

누구든지 나를 돕거나 올바른 방향으로 나를 가리킬 수 있습니까?


1
테스트 프로젝트의 패키지 참조에서 Microsoft.NET.Test.Sdk.dll에 대한 참조를 제거하여 해결할 수있는 매우 유사한 오류가 발생했습니다. 그러나 테스트 실행 / 디버깅에 64 비트 아키텍처를 사용하도록 옵션을 변경해도 효과가 있다고 생각합니다.
Dylan Nicholson

답변:


53

@coloradoeos의 솔루션을 살펴본 후 x86 버전을 설치할 필요없이이를 해결하는 다른 방법을 발견했습니다.

간단히 테스트> 모든 CPU 프로젝트의 프로세스 아키텍처> x64로 이동하십시오.

x64를 선택한 후 테스트가 정상적으로 실행됩니다.

여기에 이미지 설명을 입력하십시오


3
나는 당신의 해결책을 시도했고 잘 작동합니다. 또한 추가 항목을 다운로드하여 설치할 필요가 없으며 CPU를 X64 로 변경 하기 만하면 됩니다. 아직도 궁금한 점은 Visual Studio Update 이후에 무슨 일이 일어 났으며 왜 작동하지 않는지 입니다. 구성이 예고없이 변경되었다고 생각합니다.
Sebastian Inones

좋은 발견! 감사합니다!
Fred

1
나는 이것에 계속 타 버린 다음, 결국 여기에 돌아올 때까지 검색 결과를 통해 내 wau 파기를 발견하여 내가 여기에 왔음을 깨달았습니다. 버그 일 수 있습니다.
Jahmic

10

이 링크 를 참조하겠습니다 .

근본 원인은 다음 디렉토리에 x86 .NET Core 2.2 SDK 인스턴스가없는 것 같습니다 "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

3.1 버전 만 있었으므로 특별히 2.2 SDK의 x86 버전을 다운로드하여 설치했습니다. 일단 그렇게하면 testhost는 Visual Studio (VS)에서 단위 테스트를 정상적으로 수행했습니다. 이전 버전의 SDK를 제거하지 않았으므로 프레임 워크 / VS의 업데이트 프로세스에 문제가 있어야합니다.


당신이 말했듯이 내 경우에는 SDK를 제거 하지 않았으며 업데이트 만했습니다. 언급 한 링크에서 언급했듯이 "Visual Studio 테스트 러너는 x86 버전 의 .NET 코어 SDK 를 사용하는 것 같습니다 . 따라서 제거하면 (x64 버전 만 남김) 더 이상 .NET 코어 버전을 기반으로 테스트를 실행할 수 없습니다. "탐색기."
Sebastian Inones 2009
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.