Після оновлення 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' для проекту Unit 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.

Просто перейдіть до тестування> Архітектура процесів для будь-яких проектів CPU> x64

Тести повинні працювати нормально після вибору x64.

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


3
Я спробував ваше рішення, і воно працює добре. Крім того, не потрібно завантажувати та встановлювати нічого зайвого, потрібно лише змінити процесор на X64 . Єдине питання, яке мені все ще цікаво, це те, що сталося і чому він перестає працювати після оновлення Visual Studio . Я думаю, що конфігурація була змінена без попереднього повідомлення.
Себастьян Інонес

Чудова знахідка! Дякую!
Фред

1
Я продовжую опікуватися цим, потім знаходжу своє во, копаючи результати пошуку, поки я врешті не повернусь сюди, зрозумівши, що раніше тут був. Схоже, це може бути помилка.
Яхміч

10

Я відправлю вас за цим посиланням .

Першопричиною виявилася відсутність екземпляра x86 .NET Core 2.2 SDK у наступній папці "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

У мене була присутня лише версія 3.1, тому я спеціально завантажив версію 2.2 SDK x86 і встановив її. Після того, як я це зробив, testhost добре провів мої тести з Visual Studio (VS). Я ніколи не видаляв стару версію SDK, тому це має бути проблемою з процесом оновлення для Framework / VS.


Як ви сказали, в моєму випадку я ніколи не видаляв жоден SDK , я робив лише оновлення. У посиланні, на яке ви посилалися, зазначено: " Тест-бігун Visual Studio, здається, використовує x86 версію .NET core SDK, тому якщо ви видалите його (залишивши лише версію x64), ви більше не зможете запускати тести на базі версії ядра .NET з Тестовий провідник. "
Себастьян Інонес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.