Setelah memperbarui Visual Studio 2019 ke 16.4.0 saya tidak dapat menjalankan tes dengan kerangka kerja target 2.2

25

Saya telah memperbarui Visual studio 2019ke versi 16.4.0. Versi ini mencakup .NET Core SDK3.1.100.

Setelah itu, saya telah mencoba menjalankan beberapa Tes Unit yang saya miliki pada sebuah proyek dengan Target Framework2.2 tetapi tidak dapat melakukannya. Ini memberikan kesalahan berikut:

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.

Jika saya pergi ke jalan tersebut saya hanya menemukan folder 3.1.0 . Jika saya daftar SDKS yang diinstal saya mendapatkan ini:

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]

Jika saya meminta runtime yang terinstal, saya mendapatkan ini:

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]

Jadi, saya melihat Microsoft.AspNetCore.App ', versi' 2.2.0 'diinstal pada runtimes yang terdaftar.

Di sisi lain, Jika saya lakukan: 'tes dotnet' pada proyek Unit Test dari dalam Package Manager Consoletes sedang dijalankan.

Saya juga telah Visual Studio Codemenginstal dan tanpa perubahan apa pun, saya bahkan dapat mendebug Tes tersebut.

Jadi, saya sedikit tersesat di sini dan saya telah mencoba misalnya menyalin secara manual Folder 2.2.0 dari C: \ Program Files \ dotnet \ shared \ tetapi setelah itu, saya mendapatkan kesalahan lain ketika mencoba menjalankan tes.

Adakah yang bisa membantu saya atau mengarahkan saya ke arah yang benar.

Sebastian Inones
sumber
1
Saya memiliki kesalahan yang sangat mirip yang dapat saya pecahkan dengan menghapus referensi ke Microsoft.NET.Test.Sdk.dll dalam referensi paket proyek uji. Tapi saya percaya mengubah opsi untuk menggunakan arsitektur 64-bit untuk menjalankan / debugging tes juga berfungsi.
Dylan Nicholson

Jawaban:

53

Setelah melihat solusi dari @coloradoeos saya menemukan cara berbeda untuk menyelesaikan ini tanpa perlu menginstal versi x86.

Cukup buka Test> Process architecture untuk proyekCPU any> x64

Tes harus berjalan normal setelah memilih x64.

masukkan deskripsi gambar di sini

Xeno-D
sumber
3
Saya telah mencoba solusi Anda dan itu bekerja dengan baik. Selain itu, tidak perlu mengunduh dan menginstal apa pun, hanya perlu mengubah CPU ke X64 . Satu-satunya pertanyaan saya masih bertanya-tanya adalah apa yang terjadi dan mengapa berhenti bekerja setelah Visual Studio Update . Saya kira konfigurasi itu berubah tanpa pemberitahuan.
Sebastian Inones
Great ditemukan! Terima kasih!
Fred
1
Saya terus dibakar oleh ini, kemudian menemukan wau saya menggali melalui hasil pencarian sampai saya akhirnya kembali ke sini, menyadari saya sudah di sini sebelumnya. Sepertinya ini bisa menjadi bug.
Jahmic
10

Saya akan mengarahkan Anda ke tautan ini .

Penyebab utama tampaknya adalah kurangnya contoh x86 .NET Core 2.2 SDK di bawah direktori berikut "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Saya hanya memiliki versi 3.1, jadi saya secara khusus mengunduh versi x86 dari 2.2 SDK dan menginstalnya. Setelah saya melakukan itu, testhost menjalankan tes unit saya dari Visual Studio (VS) dengan baik. Saya tidak pernah menghapus versi SDK yang lama, jadi ini pasti masalah dengan proses pembaruan untuk framework / VS.

coloradoeos
sumber
Seperti yang Anda katakan, dalam kasus saya, saya tidak pernah menghapus SDK apa pun , saya hanya melakukan pembaruan. Seperti tautan yang Anda sebutkan menyatakan: " Pelari uji Visual Studio tampaknya menggunakan versi x86 .NET core SDK, jadi jika Anda mencopotnya (hanya menyisakan versi x64), Anda tidak dapat lagi menjalankan tes berdasarkan versi inti .NET dengan Tes Explorer. "
Sebastian Inones