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

时间:2020-05-20 13:05:51

标签: c# .net-core msbuild rider

我在同一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 Studio\2019\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 Studio\2019\BuildTools\MSBuild\Current\Bin" directory. 

1 个答案:

答案 0 :(得分:1)

tl; dr: 删除了此环境变量:

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

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

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

我希望这可以帮助某人避免四处张望,不了解正在发生的事情,从而避免浪费一天半的时间。