“GenerateDepsFile”任务意外失败:缺少 Microsoft.DotNet.PlatformAbstractions

Lel*_*dgo 5 .net c# .net-core

将我的 .NET Core SDK 更新到最新版本 (3.1.405),现在没有任何效果。每当我尝试dotnet run任何项目时,都会出现以下错误:

C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.DotNet.PlatformAbstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified. [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018: File name: 'Microsoft.DotNet.PlatformAbstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018:    at Microsoft.NET.Build.Tasks.FrameworkReferenceResolver.GetDefaultReferenceAssembliesPath() [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018:    at Microsoft.NET.Build.Tasks.GenerateDepsFile.WriteDepsFile(String depsFilePath) [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018:    at Microsoft.NET.Build.Tasks.GenerateDepsFile.ExecuteCore() [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018:    at Microsoft.NET.Build.Tasks.TaskBase.Execute() [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\Users\<UserName>\Desktop\Test\Test.csproj]
C:\Program Files\dotnet\sdk\3.1.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(194,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [C:\Users\<UserName>\Desktop\Test\Test.csproj]

The build failed. Fix the build errors and run again.
Run Code Online (Sandbox Code Playgroud)

测试.csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

该错误发生在每个 .NET Core 项目上,即使是在创建一个空白的新项目时也是如此。

我花了太多时间寻找解决方案并尝试了来自类似线程的多种解决方案,例如:

  • 重新安装 SDK
  • 降级到较早的 SDK 版本 (3.1.x)
  • 清除 NuGet 缓存
  • 打电话 dotnet clean
  • 安装 Mono 6.x
  • 删除 C:\Users\<UserName>\.nuget\packages

我的dotnet --info输出:

.NET SDK (reflecting any global.json):
 Version:   5.0.102
 Commit:    71365b4d42

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.19041
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.102\

Host (useful for support):
  Version: 5.0.2
  Commit:  cb5f173b96

.NET SDKs installed:
  3.1.405 [C:\Program Files\dotnet\sdk]
  5.0.102 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.24 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.24 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.24 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Run Code Online (Sandbox Code Playgroud)

我觉得这可能与 .NET 5 似乎是默认设置有关。我还读到该Microsoft.DotNet.PlatformAbstractions版本的 .NET SDK 将不再支持,但不知道如何处理该信息,也找不到任何有用的信息。

Wou*_*ter 4

我有同样的问题。唯一对我有用的是删除 5.* 的 sdk 文件夹(或者将它们移动到另一个位置,以防以后再次需要它们)。

我尝试使用卸载工具 github.com/dotnet/cli-lab/releases 卸载它们,但该版本没有显示。