После обновления Visual Studio 2019 до 16.4.0 я не могу запустить тесты с целевой платформой 2.2

25

Я обновился Visual studio 2019до версии 16.4.0. Эта версия включает в себя .NET Core SDK3.1.100.

После этого я попытался запустить несколько модульных тестов, которые у меня есть в проекте с Target Framework2.2, но он не может этого сделать. Это дает следующую ошибку:

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.

Если я иду по вышеупомянутому пути, я нашел только папку 3.1.0 . Если я перечислю установленные SDKS, я получу это:

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]

Если я спрашиваю об установленных средах выполнения, я получаю это:

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]

Итак, я вижу Microsoft.AspNetCore.App ', версия' 2.2.0 ', установленная в указанные среды выполнения.

С другой стороны, если я это сделаю: 'dotnet test' в проекте модульного теста изнутри Package Manager Consoleтесты выполняются.

Я также Visual Studio Codeустановил и без каких-либо изменений, я даже могу отладить эти тесты.

Итак, я немного растерялся и попытался, например, вручную скопировать папку 2.2.0 из C: \ Program Files \ dotnet \ shared \, но после этого у меня возникли другие ошибки при попытке запустить тесты.

Может ли кто-нибудь помочь мне или указать мне в правильном направлении.

Себастьян Инонес
источник
1
У меня была очень похожая ошибка, которую я смог решить, удалив ссылку на Microsoft.NET.Test.Sdk.dll в ссылках на пакеты тестовых проектов. Но я считаю, что изменение опции использования 64-битной архитектуры для запуска / отладки тестов тоже работает.
Дилан Николсон

Ответы:

53

Посмотрев на решение @coloradoeos, я обнаружил другой способ решения этой проблемы без необходимости установки версии x86.

Просто зайдите в Тест> Архитектура процесса для любых проектов ЦПУ> x64

Тесты должны работать нормально после выбора x64.

введите описание изображения здесь

Xeno-Д
источник
3
Я попробовал ваше решение, и оно работает хорошо. Кроме того, нет необходимости загружать и устанавливать что-либо дополнительное, нужно только изменить процессор на X64 . Единственный вопрос, который меня все еще интересует, это то, что произошло и почему он перестает работать после обновления Visual Studio . Я думаю, что конфигурация была изменена без предварительного уведомления.
Себастьян Инонес
Отличная находка! Спасибо!
Фред
1
Я продолжаю гореть этим, а потом обнаруживаю, что мой вау копается в результатах поиска, пока в конце концов не вернусь сюда, осознавая, что был здесь раньше. Кажется, это может быть ошибкой.
Jahmic
10

Я отошлю вас по этой ссылке .

Основной причиной, по-видимому, является отсутствие экземпляра x86 .NET Core 2.2 SDK в следующем каталоге "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

У меня была только версия 3.1, поэтому я специально скачал x86-версию 2.2 SDK и установил ее. После того, как я это сделал, testhost прекрасно запустил мои модульные тесты из Visual Studio (VS). Я никогда не удалял старую версию SDK, так что это должно быть проблемой с процессом обновления для framework / VS.

coloradoeos
источник
Как вы сказали, в моем случае я никогда не удалял SDK , я только сделал обновление. Как указывалось в приведенной вами ссылке: «Средство выполнения тестов Visual Studio, по- видимому, использует x86-версию .NET core SDK, поэтому, если вы удалите его (оставив только версию x64), вы больше не сможете запускать тесты на основе этой версии .NET с Тестовый проводник. "
Себастьян Инонес