Dopo aver aggiornato Visual Studio 2019 alla 16.4.0 non riesco ad eseguire test con il framework di destinazione 2.2


25

Ho aggiornato Visual studio 2019alla versione 16.4.0. Questa versione include .NET Core SDK3.1.100.

Successivamente, ho provato ad eseguire alcuni Test di unità che ho su un progetto con Target Framework2.2 ma non è in grado di farlo. Dà il seguente errore:

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 vado al percorso di cui sopra ho trovato solo una cartella 3.1.0 . Se elenco gli SDKS installati ottengo questo:

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 chiedo i runtime installati ottengo questo:

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]

Quindi, vedo Microsoft.AspNetCore.App ', versione' 2.2.0 'installata sui runtime elencati.

D'altra parte, se lo faccio: 'dotnet test' sul progetto Unit Test all'interno Package Manager Consoledei test in corso.

Ho anche Visual Studio Codeinstallato e senza alcuna modifica, posso anche eseguire il debug di questi test.

Quindi, mi sono perso un po 'qui e ho provato ad esempio a copiare manualmente la cartella 2.2.0 da C: \ Programmi \ dotnet \ shared \, ma dopo ciò, ho riscontrato altri errori durante il tentativo di eseguire i test.

Qualcuno potrebbe aiutarmi o indicarmi la giusta direzione.


1
Ho riscontrato un errore molto simile che sono stato in grado di risolvere rimuovendo il riferimento a Microsoft.NET.Test.Sdk.dll nei riferimenti al pacchetto dei progetti di test. Ma credo che anche cambiare l'opzione per usare l'architettura a 64 bit per l'esecuzione / i test di debug funzioni.
Dylan Nicholson,

Risposte:


53

Dopo aver esaminato la soluzione di @coloradoeos, ho scoperto un modo diverso di risolverlo senza dover installare una versione x86.

Basta andare su Test> Architettura di processo per qualsiasi progetto CPU> x64

I test dovrebbero essere eseguiti normalmente dopo aver selezionato x64.

inserisci qui la descrizione dell'immagine


3
Ho provato la tua soluzione e funziona bene. Inoltre, non è necessario scaricare e installare nulla in più, è necessario solo per cambiare la CPU in X64 . L'unica domanda che mi chiedo ancora è cosa è successo e perché smette di funzionare dopo l'aggiornamento di Visual Studio . Suppongo che la configurazione sia stata modificata senza preavviso.
Sebastian Inones,

Grande scoperta! Grazie!
Fred,

1
Continuo a essere bruciato da questo, poi trovo il mio wau che scava tra i risultati della ricerca fino a quando non torno a qui, rendendomi conto di essere stato qui prima. Sembra che potrebbe essere un bug.
Jahmic il

10

Ti farò riferimento a questo link .

La causa principale sembrava essere la mancanza di un'istanza SDK .NET Core 2.2 x86 nella seguente directory "C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App".

Avevo solo una versione 3.1 presente, quindi ho scaricato specificamente una versione x86 dell'SDK 2.2 e l'ho installata. Una volta che l'ho fatto, il testhost ha eseguito i miei test unitari da Visual Studio (VS) bene. Non ho mai disinstallato la vecchia versione dell'SDK, quindi questo deve essere un problema con il processo di aggiornamento per il framework / VS.


Come hai detto, nel mio caso non ho mai disinstallato alcun SDK , ho fatto solo l'aggiornamento. Come indicato nel link che hai indicato: "Visual Studio Test Runner sembra utilizzare la versione x86 di .NET core SDK, quindi se lo disinstalli (lasciando solo la versione x64) non puoi più eseguire test basati su quella versione .NET di base con Test Explorer. "
Sebastian Inones,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.