Após a atualização do Visual Studio 2019 para 16.4.0, não consigo executar testes com a estrutura de destino 2.2

25

Eu atualizei Visual studio 2019para a versão 16.4.0. Esta versão inclui .NET Core SDK3.1.100.

Depois disso, tentei executar alguns testes de unidade que tenho em um projeto com o Target Framework2.2, mas ele não está conseguindo fazê-lo. Dá o seguinte erro:

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.

Se eu for para o caminho mencionado, encontrei apenas uma pasta 3.1.0 . Se eu listar os SDKS instalados, recebo o seguinte:

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]

Se eu pedir os tempos de execução instalados , recebo o seguinte:

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]

Portanto, vejo Microsoft.AspNetCore.App ', versão' 2.2.0 'instalada nos tempos de execução listados.

Por outro lado, se eu fizer: 'dotnet test' no projeto Unit Test de dentro Package Manager Consoledos testes, está sendo executado.

Eu também tenho Visual Studio Codeinstalado e sem qualquer alteração, posso até depurar esses testes.

Então, estou um pouco perdido aqui e tentei, por exemplo, copiar manualmente a pasta 2.2.0 de C: \ Arquivos de Programas \ dotnet \ shared \, mas depois disso, recebi outros erros ao tentar executar os testes.

Alguém poderia me ajudar ou me apontar na direção certa.

Sebastian Inones
fonte
11
Eu tive um erro muito semelhante que consegui resolver removendo a referência ao Microsoft.NET.Test.Sdk.dll nas referências de pacote dos projetos de Teste. Mas acredito que alterar a opção de usar a arquitetura de 64 bits para executar / depurar testes também funcione.
Dylan Nicholson

Respostas:

53

Depois de analisar a solução do @coloradoeos, descobri uma maneira diferente de resolver isso sem precisar instalar uma versão x86.

Basta ir em Teste> Arquitetura de processo para qualquer projeto de CPU> x64

Os testes devem ser executados normalmente após a seleção de x64.

insira a descrição da imagem aqui

Xeno-D
fonte
3
Eu tentei sua solução e ela funciona bem. Além disso, não há necessidade de baixar e instalar nada extra, basta mudar a CPU para X64 . A única pergunta que ainda me pergunto é o que aconteceu e por que ele para de funcionar após a Atualização do Visual Studio . Eu acho que essa configuração foi alterada sem aviso prévio.
Sebastian Inones 11/12/19
Ótima descoberta! Obrigado!
Fred
11
Eu continuo me queimando com isso, depois encontrando meu wau vasculhando os resultados da pesquisa até finalmente voltar para cá, percebendo que já estive aqui antes. Parece que pode ser um bug.
Jahmic 23/01
10

Vou encaminhá-lo para este link .

A causa raiz parecia ser a falta de uma instância do x86 .NET Core 2.2 SDK no diretório a seguir "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Eu só tinha uma versão 3.1 presente, então baixei especificamente uma versão x86 do 2.2 SDK e a instalei. Depois disso, o testhost executou meus testes de unidade do Visual Studio (VS). Nunca desinstalei a versão antiga do SDK, portanto, esse deve ser um problema no processo de atualização do framework / VS.

coloradoeos
fonte
Como você disse, no meu caso , nunca desinstalei nenhum SDK , fiz apenas a atualização. Como o link que você referiu declarou: "O executor de teste do Visual Studio parece usar a versão x86 do .NET core SDK; portanto, se você o desinstalar (deixando apenas a versão x64), não poderá mais executar testes com base nessa versão do .NET core com Explorador de teste ".
Sebastian Inones