Po zaktualizowaniu programu Visual Studio 2019 do wersji 16.4.0 nie mogę uruchomić testów z docelową strukturą 2.2

25

Zaktualizowałem Visual studio 2019do wersji 16.4.0. Ta wersja zawiera .NET Core SDK3.1.100.

Następnie próbowałem przeprowadzić niektóre testy jednostkowe, które mam w projekcie z Target Frameworkwersją 2.2, ale nie jest w stanie tego zrobić. Daje następujący błąd:

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.

Jeśli przejdę do wyżej wymienionej ścieżki, znalazłem tylko folder 3.1.0 . Jeśli wymienię zainstalowane pakiety SDK, otrzymam to:

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]

Jeśli zapytam o zainstalowane środowiska wykonawcze , otrzymuję to:

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]

Widzę więc Microsoft.AspNetCore.App ”, wersja„ 2.2.0 ”zainstalowana w wymienionych środowiskach wykonawczych.

Z drugiej strony, jeśli zrobię: „test dotnet” w projekcie testu jednostkowego z poziomu Package Manager Consoletestów jest uruchamiany.

Mam również Visual Studio Codezainstalowany i bez żadnych zmian, mogę nawet debugować te testy.

Więc trochę się tu zagubiłem i próbowałem na przykład ręcznie skopiować folder 2.2.0 z C: \ Program Files \ dotnet \ shared \, ale potem wystąpiły inne błędy podczas próby uruchomienia testów.

Czy ktoś może mi pomóc lub skierować mnie w dobrym kierunku.

Sebastian Inones
źródło
1
Miałem bardzo podobny błąd, który udało mi się rozwiązać, usuwając odwołanie do Microsoft.NET.Test.Sdk.dll w odwołaniach do pakietów projektów testowych. Sądzę jednak, że zmiana opcji używania architektury 64-bitowej do uruchamiania / testowania testów również działa.
Dylan Nicholson,

Odpowiedzi:

53

Po przyjrzeniu się rozwiązaniu z @coloradoeos odkryłem inny sposób rozwiązania tego problemu bez konieczności instalowania wersji x86.

Po prostu przejdź do Test> Architektura procesu dla dowolnych projektów CPU> x64

Testy powinny działać normalnie po wybraniu x64.

wprowadź opis zdjęcia tutaj

Xeno-D
źródło
3
Wypróbowałem twoje rozwiązanie i działa dobrze. Ponadto nie trzeba pobierać ani instalować żadnych dodatkowych elementów, wystarczy zmienić procesor na X64 . Nadal zastanawiam się, co się stało i dlaczego przestaje działać po aktualizacji Visual Studio . Myślę, że konfiguracja została zmieniona bez powiadomienia.
Sebastian Inones,
Świetne znalezisko! Dziękuję Ci!
Fred
1
Ciągle mnie to palą, a potem znajduję moje wau, przeglądając wyniki wyszukiwania, aż w końcu wróciłem do tego miejsca, zdając sobie sprawę, że byłem tu wcześniej. Wygląda na to, że może to być błąd.
Jahmic
10

Odsyłam cię do tego linku .

Główną przyczyną był brak instancji zestawu .NET Core 2.2 SDK x86 w następującym katalogu "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Miałem tylko wersję 3.1, więc specjalnie pobrałem wersję 2.2 SDK 2.2 i zainstalowałem ją. Gdy to zrobiłem, testhost przeprowadził moje testy jednostkowe z Visual Studio (VS) w porządku. Nigdy nie odinstalowałem starej wersji zestawu SDK, więc musi to być problem z procesem aktualizacji dla frameworka / VS.

kolorado
źródło
Jak powiedziałeś, w moim przypadku nigdy nie odinstalowałem żadnego zestawu SDK , zrobiłem tylko aktualizację. Jak wspomniałeś w podanym linku: „ Runner testowy Visual Studio wydaje się używać wersji x86 .NET Core SDK, więc jeśli go odinstalujesz (pozostawiając tylko wersję x64), nie będziesz już mógł uruchamiać testów opartych na tej wersji .NET Core z Test Explorer. ”
Sebastian Inones,