MSBuild 的 Visual Studio 解决方案项目中所需的更改

Posted

技术标签:

【中文标题】MSBuild 的 Visual Studio 解决方案项目中所需的更改【英文标题】:Changes required in Visual studio solution project for MSBuild 【发布时间】:2019-03-02 20:44:22 【问题描述】:

我有一个带有两个简单类库项目的 .Net 解决方案。这两个项目都包含一个方法,例如 hello world。

解决方案正在使用 Visual Studio 和 MSBuild.exe 正确构建。

现在,当我将 Project 1 引用到 Project-2 时,它开始产生问题。

解决方案正在使用 Visual Studio 正确构建,但不是通过 MSBuild。

请参考随附的屏幕截图。

在使用 MSBuild 构建解决方案之前,我们需要对解决方案做些什么具体的事情吗?

(_GetProjectReferenceTargetFrameworkProperties 目标) -> C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1657,5):错误 MSB4036:未找到“GetReferenceNearestTargetFrameworkTask”任务。检查以下内容: 1.) 项目文件中的任务名称与任务类的名称相同。 2.) 任务类是“公共的”并且实现了 Microsoft.Build.Framework.ITask 接口。 3.) 在项目文件或位于“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin”目录中的 *.tasks 文件中正确声明了任务。 [D:\DevOps\Sample-Projects\DevOpsSoln\DummyClass\DummyClass.csproj]

还有一件事是我需要在 msbuild 控制台上提供任何特定参数,例如:

C:Programfile\MsBuild.exe *.sln 文件路径(任何特定参数)

注意:我的解决方案只有基于 DLL 的项目。

【问题讨论】:

我有更新文本。 【参考方案1】:

MSBuild 的 Visual Studio 解决方案项目所需的更改

要解决此问题,请尝试使用安装程序安装 Nuget 包管理器:

    下载打开Build Tools for Visual Studio 2017。

    切换到“单个组件”标签

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

    点击安装进行安装。

它所在位置的屏幕截图:

这应该可以解决您在此问题中看到的错误。如果它不起作用,请参阅此问题中的the answers。

希望这会有所帮助。

【讨论】:

以上是关于MSBuild 的 Visual Studio 解决方案项目中所需的更改的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio中的MSBuild项目

为啥 Visual Studio 2010 (msbuild?) 构建速度不快?

MSBuild 是不是需要安装 Visual Studio?

如何只用visual c++编译器而不安装visual studio

网站编译在 MSBuild 中失败,但在 Visual Studio 中有效

如何添加停止 msbuild 构建项目 Visual Studio 构建选项