找不到错误 NETSDK1004 资产文件 project.assets.json 和错误 MSB4036 找不到 "GetReferenceNearestTargetFrameworkTask" 任务

error NETSDK1004 Assets file project.assets.json not found and error MSB4036 The "GetReferenceNearestTargetFrameworkTask" task was not found

我在这台计算机上的同一个 dotnet 项目上工作了 2-3 个月,只有在安装 JetBrains Rider 之后我才感到惊讶。 运行 dotnet restore 没有输出任何东西, 运行 dotnet builddotnet watch build 或类似的东西输出了这样的错误:

error NETSDK1004: Assets file project.assets.json not found. Run a NuGet package restore to generate this file.

最糟糕的是 dotnet build 失败并出现错误,但是 msbuild 运行 在同一个项目上成功构建了项目(搞清楚尝试 msbuild 花了也有一段时间)。这看起来很疯狂,没有解释任何事情。

通过重新安装所有累积的 10 个左右的 .NET Core SDK 版本来摆弄之后,没有任何改变。但我认为在卸载 Rider 后我开始收到另一个错误:

C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1655,5): error MSB4036: The "GetReferenceNearestTargetFrameworkTask" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\MSBuild\Current\Bin" directory. 

tl;博士: 删除了这个环境变量:

MSBUILD_EXE_PATH
C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\MSBuild\Current\Bin\MSBuild.exe

并且所有 dotnet CLI 命令再次开始工作。 它是如何到达那里的 - 我不知道,可能是 Rider 将它添加到那里的。但是我打开了两个 CMD windows 并且在您重新启动 CMD 之前它具有相同的环境变量。

设置了 MSBUILD_EXE_PATH 的那个有错误,没有设置的那个没有错误并且工作正常。

我希望这可以帮助一些人不要因为四处张望而不了解正在发生的事情而浪费一天半的工作。