找不到“ GetReferenceNearestTargetFrameworkTask”任务

我有一个问题与自动完成在 VS 2017社区。

以前我从学校得到 VS 2017企业,但是钥匙过期了,所以我搬到了社区。

以前,一切都很顺利,但现在一点也不顺利。

我在 Stack Overflow 给你上找到了一个解决方案,但它不起作用,所以在 GitHub 给你上找到了另一个解决方案。

我得到了这个:

建造失败。

C: Program Files (x86) Microsoft Visual Studio 2017 Community MSBuild 15.0 Bin Microsoft. Common. CurrentVersion.target (1601,5) : error MSB4036: 找不到“ GetReferenceNearestTargetFrameworkTask”任务。请检查以下内容: 项目文件中任务的名称与任务类的名称相同。 任务类是“ public”并实现 Microsoft.Build.Framework.ITask 接口。 任务在项目文件或位于 “ C: Program Files (x86) Microsoft Visual Studio 2017 Community MSBuild 15.0 Bin”目录。 0警告 1错误

时间流逝00:00:00.11

你知道下一步怎么做吗?

37570 次浏览

按照下面的步骤来修复这个错误,这适用于 VS 2017:

修正一:

给你安装 Nuget 软件包管理器

2 . 重新启动 VisualStudio。


如果问题仍然存在,请继续下面的内容

修正2:

1 . 下载并再次启动/运行 Visual Studio 安装人员

当 Visual Studio 安装人员仍在运行时,转到 「个别组件」选项卡

3 . 勾选 “代码工具”选项下的“ NuGet 软件包管理器”复选框。

单击 Install 安装。

这个位置的屏幕截图:

enter image description here

这应该可以修复您在这个问题中看到的错误。重新启动 VisualStudio 并测试自动完成功能。如果它不工作,看看从 这个问题的答案,因为这是一个完全不同的问题。

我有相同的错误消息,但为一个不同的问题。

因此,我使用 MSBuild 来自动化 Azure 函数的构建/部署过程。一切正常,直到我更新了 VisualStudio2017和 VisualStudioBuildTools2017,此时我开始得到这个错误。确切地说,我只有在使用 MSBuild 时才得到这个错误,从 VS 手动构建项目工作得很好。

在我的例子中,我已经按照@Programmer 的回答设置了所有的内容。 但是当我使用 MSBuild 时,我发现我还必须安装 NuGet 目标和构建任务,它是 VisualStudioBuild 工具的一部分。

Screenshot of Visual Studio Installer

我使用的是服务器核心上的无头构建服务器,解决方法是从这里安装 Chocolatey 包 Choco install visalstudio2017-load-webbuildtools:

Https://chocolatey.org/packages?q=msbuild

我在一个没有 VisualStudio2017,只有 VSBuildTools 的构建环境中看到了 msbuild 15.6.82的这个问题。

这里有一个 PowerShell 脚本解决这个问题,它几乎相当于 VS 安装程序中以前的答案,但静静地等待完成。

开始-进程“ C: Program Files (x86) Microsoft Visual Studio Installer vs _ Installer.exe”-ArgumentList‘ Amendment —— installPath“ C: Program Files (x86) Microsoft Visual Studio 2017 BuildTools”—— static —— add Microsoft。VisualStudio.组件 NuGet。BuildTools ——添加 Microsoft。网。组件4.5。瞄准包,不能重启,强制,等等,通过

我正在报道一位微软技术人员的回答

这通常表明两种情况之一:

  • VS 安装失败。如果是这种情况,我建议在 VS 安装上运行一个修复程序。
  • 你们在 GAC 有错误的组装程序,如果是这样的话,请取消它们。

利瓦尔 · 库尼亚

我在 VisualStudio2019中也遇到了同样的问题,我通过简单地安装 unitypackage 解决了这个问题