Después de actualizar Visual Studio 2019 a 16.4.0, no puedo ejecutar pruebas con Target Framework 2.2

25

He actualizado Visual studio 2019a la versión 16.4.0. Esta versión incluye .NET Core SDK3.1.100.

Después de eso, he intentado ejecutar algunas pruebas unitarias que tengo en un proyecto con Target Framework2.2, pero no puedo hacerlo. Da el siguiente error:

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 voy a la ruta antes mencionada, solo encontré una carpeta 3.1.0 . Si enumero los SDKS instalados, obtengo esto:

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 solicito los tiempos de ejecución instalados , obtengo esto:

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]

Entonces, veo Microsoft.AspNetCore.App ', versión' 2.2.0 'instalada en los tiempos de ejecución enumerados.

Por otro lado, si lo hago: 'dotnet test' en el proyecto Unit Test desde dentro de Package Manager Consolelas pruebas se están ejecutando.

También he Visual Studio Codeinstalado y sin ningún cambio, incluso puedo depurar esas pruebas.

Entonces, estoy un poco perdido aquí y he intentado, por ejemplo, copiar manualmente la carpeta 2.2.0 de C: \ Archivos de programa \ dotnet \ shared \ pero después de eso, obtuve otros errores al intentar ejecutar las pruebas.

¿Alguien podría ayudarme o señalarme en la dirección correcta?

Sebastian Inones
fuente
1
Tuve un error muy similar que pude resolver al eliminar la referencia a Microsoft.NET.Test.Sdk.dll en las referencias del paquete de los proyectos de prueba. Pero creo que cambiar la opción de usar arquitectura de 64 bits para ejecutar / depurar pruebas también funciona.
Dylan Nicholson

Respuestas:

53

Después de mirar la solución de @coloradoeos, descubrí una forma diferente de resolver esto sin necesidad de instalar una versión x86.

Simplemente vaya a Prueba> Arquitectura de proceso para cualquier proyecto de CPU> x64

Las pruebas deben ejecutarse normalmente después de seleccionar x64.

ingrese la descripción de la imagen aquí

Xeno-D
fuente
3
He probado tu solución y funciona bien. Además, no es necesario descargar e instalar nada adicional, solo es necesario cambiar la CPU a X64 . La única pregunta que aún me pregunto es qué sucedió y por qué deja de funcionar después de la actualización de Visual Studio . Supongo que la configuración se cambió sin previo aviso.
Sebastian Inones
Gran descubrimiento! ¡Gracias!
Fred
1
Esto me sigue quemando, luego encuentro mi wau buscando en los resultados de búsqueda hasta que finalmente vuelvo aquí, dándome cuenta de que he estado aquí antes. Esto parece que podría ser un error.
Jahmic
10

Te referiré a este enlace .

La causa raíz parecía ser la falta de una instancia de x86 .NET Core 2.2 SDK en el siguiente directorio "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Solo tenía una versión 3.1 presente, así que específicamente descargué una versión x86 del 2.2 SDK y la instalé. Una vez que hice eso, el testhost ejecutó mis pruebas unitarias desde Visual Studio (VS) muy bien. Nunca desinstalé la versión anterior del SDK, así que esto debe ser un problema con el proceso de actualización para el framework / VS.

coloradoeos
fuente
Como dijiste, en mi caso nunca desinstalé ningún SDK , solo hice la actualización. Como decía el enlace que mencionó: "El corrector de prueba de Visual Studio parece usar la versión x86 del SDK básico de .NET, por lo que si lo desinstala (dejando solo la versión x64) ya no podrá ejecutar pruebas basadas en esa versión principal de .NET con Test Explorer ".
Sebastian Inones