Après la mise à jour de Visual Studio 2019 vers 16.4.0, je ne peux pas exécuter de tests avec le framework cible 2.2

25

J'ai mis Visual studio 2019à jour la version 16.4.0. Cette version inclut .NET Core SDK3.1.100.

Après cela, j'ai essayé d'exécuter certains tests unitaires que j'ai sur un projet avec Target Framework2.2, mais il ne peut pas le faire. Il donne l'erreur suivante:

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.

Si je vais sur le chemin susmentionné, je n'ai trouvé qu'un dossier 3.1.0 . Si je liste les SDKS installés, j'obtiens ceci:

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]

Si je demande les runtimes installés, j'obtiens ceci:

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]

Donc, je vois Microsoft.AspNetCore.App ', version' 2.2.0 'installé sur les runtimes listés.

D'un autre côté, si je le fais: «test dotnet» sur le projet de test unitaire depuis Package Manager Consoleles tests en cours.

J'ai également Visual Studio Codeinstallé et sans aucun changement, je peux même déboguer ces tests.

Donc, je suis un peu perdu ici et j'ai par exemple essayé de copier manuellement le dossier 2.2.0 depuis C: \ Program Files \ dotnet \ shared \ mais après cela, j'ai eu d'autres erreurs en essayant d'exécuter les tests.

Quelqu'un pourrait-il m'aider ou me diriger dans la bonne direction?

Sebastian Inones
la source
1
J'ai eu une erreur très similaire que j'ai pu résoudre en supprimant la référence à Microsoft.NET.Test.Sdk.dll dans les références de package des projets de test. Mais je pense que changer l'option d'utiliser une architecture 64 bits pour exécuter / déboguer les tests fonctionne aussi.
Dylan Nicholson

Réponses:

53

Après avoir regardé la solution de @coloradoeos, j'ai découvert une manière différente de résoudre cela sans avoir besoin d'installer une version x86.

Allez simplement dans Test> Architecture de processus pour tous les projets CPU> x64

Les tests doivent s'exécuter normalement après avoir sélectionné x64.

entrez la description de l'image ici

Xeno-D
la source
3
J'ai essayé votre solution et elle fonctionne bien. De plus, il n'est pas nécessaire de télécharger et d'installer quoi que ce soit supplémentaire, il suffit de changer le CPU en X64 . La seule question que je me demande encore est ce qui s'est passé et pourquoi cela cesse de fonctionner après la mise à jour de Visual Studio . Je suppose que cette configuration a été modifiée sans préavis.
Sebastian Inones
Super trouvaille! Je vous remercie!
Fred
1
Je continue à être brûlé par cela, puis à trouver mon wau en fouillant dans les résultats de recherche jusqu'à ce que je revienne finalement ici, réalisant que je suis déjà venu ici. Il semble que cela pourrait être un bug.
Jahmic
10

Je vous renvoie à ce lien .

La cause première semble être l'absence d'une instance du SDK x86 .NET Core 2.2 dans le répertoire suivant "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Je n'avais qu'une version 3.1 présente, j'ai donc spécifiquement téléchargé une version x86 du SDK 2.2 et l'ai installé. Une fois que j'ai fait cela, l'hôte de test a très bien exécuté mes tests unitaires à partir de Visual Studio (VS). Je n'ai jamais désinstallé l'ancienne version du SDK, donc cela doit être un problème avec le processus de mise à jour pour le framework / VS.

coloradoeos
la source
Comme vous l'avez dit, dans mon cas, je n'ai jamais désinstallé de SDK , je n'ai fait que la mise à jour. Comme le lien que vous avez mentionné indique: «Le programme de test Visual Studio semble utiliser la version x86 du SDK .NET core, donc si vous le désinstallez (en ne laissant que la version x64), vous ne pourrez plus exécuter des tests basés sur cette version .NET core avec Test Explorer. "
Sebastian Inones