【问题标题】:After updated Visual Studio 2019 to 16.4.0 I can't run tests with target framework 2.2将 Visual Studio 2019 更新到 16.4.0 后,我无法使用目标框架 2.2 运行测试
【发布时间】:2022-04-07 18:55:39
【问题描述】:

我已将Visual studio 2019 更新到版本 16.4.0。此版本包含.NET Core SDK3.1.100。

在那之后,我尝试在 Target Framework 2.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 文件夹。 如果我列出已安装的 SDK,我会得到:

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]

如果我要求安装 runtimes,我会得到:

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 test”,则测试正在运行。

我还安装了Visual Studio Code,无需任何更改,我什至可以调试这些测试。

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

谁能帮助我或指出正确的方向。

【问题讨论】:

  • 我遇到了一个非常相似的错误,我可以通过在测试项目的包引用中删除对 Microsoft.NET.Test.Sdk.dll 的引用来解决该错误。但我相信将选项更改为使用 64 位架构来运行/调试测试也可以。

标签: .net-core sdk visual-studio-2019 target-framework


【解决方案1】:

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

只需转到测试 > anyCPU 项目的进程架构 > x64

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

【讨论】:

  • 我已经尝试过您的解决方案,效果很好。另外,不需要额外下载安装任何东西,只需将CPU改为X64即可。我仍然想知道的唯一问题是发生了什么以及为什么它在 Visual Studio 更新 之后停止工作。我猜配置是在没有通知的情况下更改的。
  • 很棒的发现!谢谢!
  • 我一直为此感到烦恼,然后在搜索结果中找到我的 wau,直到我最终回到这里,意识到我以前来过这里。这似乎是一个错误。
【解决方案2】:

我会推荐你​​到this link

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

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

【讨论】:

  • 如你所说,就我而言我从未卸载过任何 SDK,我只进行了更新。正如您提到的链接所述:“Visual Studio test runner 似乎使用 x86 版本 of .NET core SDK,因此如果您卸载它(仅保留 x64 版本),您将无法再运行基于使用测试资源管理器在那个 .NET 核心版本上。”
【解决方案3】:

如果您在 Azure 构建管道中遇到同样的问题。 将您的测试项目中的目标平台更改为X64

Visual Studio 被配置为以 x86 运行 AnyCPU 测试,但只安装了 x64 SDK。将 VS 设置为使用 x64 进行 AnyCPU 测试。 还 升级到 Microsoft.NET.Test.Sdk 到最新版本。

在我的例子中,我必须添加一个特定的 .NET 核心版本来构建管道。 查找特定的 .NET core 版本Here

【讨论】:

    【解决方案4】:

    尝试将项目框架更改为找到的框架,即 3.1 或 5.0:右键单击项目 -> 属性 -> 应用程序 -> 目标框架

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 2021-02-26
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2021-03-02
      相关资源
      最近更新 更多