将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'。

另一方面,如果我这样做:Package Manager Console正在运行测试中的单元测试项目上的“ dotnet测试” 。

我也已经Visual Studio Code安装了并且没有任何更改,我什至可以调试那些测试。

因此,我在这里有点迷失了,例如,我尝试从C:\ Program Files \ dotnet \ shared \手动复制2.2.0文件夹,但是之后,在尝试运行测试时遇到其他错误。

任何人都可以帮助我或为我指明正确的方向。


1
我有一个非常相似的错误,可以通过在测试项目的程序包引用中删除对Microsoft.NET.Test.Sdk.dll的引用来解决。但我相信,更改选项以使用64位体系结构来运行/调试测试也是可行的。
Dylan Nicholson

Answers:


53

在查看@coloradoeos的解决方案后,我发现了无需安装x86版本即可解决此问题的另一种方法。

只需转到Test>任何CPU项目的流程体系结构> x64

选择x64后,测试应该可以正常运行。

在此处输入图片说明


3
我已经尝试过您的解决方案,并且效果很好。另外,无需下载和安装任何额外的东西,只需将CPU更改为X64即可。我仍然想知道的唯一问题是发生了什么以及为什么它在Visual Studio Update之后无法正常工作。我猜配置已更改,恕不另行通知。
塞巴斯蒂安·伊内内斯

很棒的发现!谢谢!
弗雷德

1
我一直对此感到不寒而栗,然后发现我的wau在搜索结果中进行挖掘,直到最终回到这里,才意识到我曾经来过这里。这似乎可能是一个错误。
Jahmic

10

我将推荐您使用此链接

根本原因似乎是在以下目录下缺少x86 .NET Core 2.2 SDK实例"C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App"

我只有3.1版本,因此我专门下载了x86版本的2.2 SDK并安装了它。一旦这样做,测试主机就可以从Visual Studio(VS)运行我的单元测试。我从未卸载过旧版本的SDK,因此这一定是框架/ VS更新过程中的问题。


如您所说,就我而言,我从未卸载过任何SDK,而仅做了更新。正如您所引用的链接所述:“ Visual Studio 测试运行程序似乎使用 .NET Core SDK的x86版本,因此,如果卸载它(仅保留x64版本),您将无法再运行基于该.NET Core版本的测试。测试资源管理器。”
塞巴斯蒂安·伊内内斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.