Nach der Aktualisierung von Visual Studio 2019 auf 16.4.0 kann ich keine Tests mit Zielframework 2.2 ausführen

25

Ich habe Visual studio 2019auf Version 16.4.0 aktualisiert . Diese Version enthält .NET Core SDK3.1.100.

Danach habe ich versucht, einige Unit-Tests durchzuführen, die ich für ein Projekt mit Target Framework2.2 durchgeführt habe, aber dies ist nicht möglich. Es gibt den folgenden Fehler:

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.

Wenn ich zu dem oben genannten Pfad gehe, habe ich nur einen 3.1.0-Ordner gefunden . Wenn ich die installierten SDKS aufführe, erhalte ich Folgendes:

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]

Wenn ich nach den installierten Laufzeiten frage, erhalte ich Folgendes :

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]

Ich sehe also Microsoft.AspNetCore.App ', Version' 2.2.0 ', die auf den aufgelisteten Laufzeiten installiert ist.

Wenn ich dagegen Folgendes tue: 'Dotnet-Test' für das Unit-Test-Projekt innerhalb Package Manager Consoleder Tests werden ausgeführt.

Ich habe auch Visual Studio Codeinstalliert und ohne Änderung kann ich diese Tests sogar debuggen.

Ich bin hier ein bisschen verloren und habe zum Beispiel versucht, den 2.2.0-Ordner manuell aus C: \ Programme \ dotnet \ shared \ zu kopieren, aber danach habe ich beim Versuch, die Tests auszuführen, andere Fehler erhalten.

Könnte mir jemand helfen oder mich in die richtige Richtung weisen.

Sebastian Inones
quelle
1
Ich hatte einen sehr ähnlichen Fehler, den ich beheben konnte, indem ich den Verweis auf Microsoft.NET.Test.Sdk.dll in den Paketreferenzen der Testprojekte entfernte. Ich glaube jedoch, dass das Ändern der Option zur Verwendung der 64-Bit-Architektur zum Ausführen / Debuggen von Tests auch funktioniert.
Dylan Nicholson

Antworten:

53

Nachdem ich mir die Lösung von @coloradoeos angesehen hatte, entdeckte ich einen anderen Weg, dies zu lösen, ohne eine x86-Version installieren zu müssen.

Gehen Sie einfach zu Test> Prozessarchitektur für beliebige CPU-Projekte> x64

Die Tests sollten nach Auswahl von x64 normal ausgeführt werden.

Geben Sie hier die Bildbeschreibung ein

Xeno-D
quelle
3
Ich habe Ihre Lösung ausprobiert und sie funktioniert gut. Außerdem müssen keine zusätzlichen Dateien heruntergeladen und installiert werden. Es muss lediglich die CPU auf X64 geändert werden . Die einzige Frage, die ich mich immer noch frage, ist, was passiert ist und warum es nach Visual Studio Update nicht mehr funktioniert . Ich denke, dass die Konfiguration ohne vorherige Ankündigung geändert wurde.
Sebastian Inones
Toller Fund! Vielen Dank!
Fred
1
Ich verbrenne mich immer wieder damit und finde dann heraus, dass mein Wau in den Suchergebnissen stöbert, bis ich schließlich wieder hier bin und merke, dass ich schon einmal hier war. Dies scheint ein Fehler zu sein.
Jahmic
10

Ich verweise Sie auf diesen Link .

Die Hauptursache schien das Fehlen einer x86 .NET Core 2.2 SDK-Instanz im folgenden Verzeichnis zu sein "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Ich hatte nur eine 3.1-Version vorhanden, daher habe ich speziell eine x86-Version des 2.2 SDK heruntergeladen und installiert. Sobald ich das getan habe, hat der Testhost meine Unit-Tests in Visual Studio (VS) problemlos ausgeführt. Ich habe die alte Version des SDK nie deinstalliert, daher muss dies ein Problem mit dem Aktualisierungsprozess für das Framework / VS sein.

coloradoeos
quelle
Wie Sie sagten, habe ich in meinem Fall nie ein SDK deinstalliert, sondern nur das Update durchgeführt. In dem von Ihnen genannten Link heißt es: "Visual Studio Test Runner scheint die x86-Version des .NET Core SDK zu verwenden. Wenn Sie es also deinstallieren (nur die x64-Version belassen), können Sie keine Tests mehr ausführen, die auf dieser .NET Core-Version mit basieren Test Explorer. "
Sebastian Inones