将 Visual Studio 2019 更新到 16.4.0 后,我无法使用目标框架 2.2 运行测试

Seb*_*nes 29 sdk target-framework .net-core visual-studio-2019

我已经更新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.
Run Code Online (Sandbox Code Playgroud)

如果我转到上述路径,我只找到了一个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]
Run Code Online (Sandbox Code Playgroud)

如果我询问已安装的运行时,我会得到:

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]
Run Code Online (Sandbox Code Playgroud)

所以,我看到 Microsoft.AspNetCore.App',版本 '2.2.0' 安装在列出的运行时上。

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

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

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

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

Xen*_*o-D 67

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

只需转到测试 > 任何 CPU 项目的进程架构 > x64

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

在此处输入图片说明

  • 我已经尝试过你的解决方案并且效果很好。另外,无需额外下载安装任何东西,只需将**CPU改为X64**即可。我仍然想知道的唯一问题是发生了什么以及为什么它在 **Visual Studio 更新**之后停止工作。我猜配置已更改,恕不另行通知。 (3认同)
  • 我一直被这个困扰,然后在搜索结果中找到我的 wau,直到我最终回到这里,意识到我以前来过这里。这似乎可能是一个错误。 (2认同)

小智 11

我会向你推荐这个链接

根本原因似乎是以下目录下缺少 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,所以这一定是框架/VS的更新过程有问题。