【发布时间】:2021-01-12 21:13:02
【问题描述】:
我有完整的 .NET 4.7.2 Web API 项目。这是现有项目。在 CI 服务器上,我正在使用来自 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild 文件夹的 MSBuild 版本 15.6.85.37198 构建这个项目
我添加了另一个具有通用代码的 NETStandard2 库项目。 Web API 2 项目现在有一个对此 NETStandard2 项目的项目引用。
还将 Web Api 的配置更新为
<system.web>
<compilation targetFramework="4.7.2" debug="true">
<assemblies>
<add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.7.2" />
在本地机器上,我使用的是 VS 2019,两个项目都在编译。
在 CI 服务器上,我安装了新的 NET 5 SDK。我正在构建 Web 项目作为
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild MyApi.csproj /p:Configuration=Release
抛出错误
错误:.NET Core SDK 版本 5.0.101 至少需要版本 MSBuild 的 16.8.0。当前可用的 MSBuild 版本是 15.6.85.37198。将 global.json 中指定的 .NET Core SDK 更改为需要当前可用的 MSBuild 版本的旧版本。
错误是不言自明的。由于 web api 引用 NetStandard 我必须安装 MSbuild 16*
但是,来自MS documentation
要在没有 Visual Studio 的系统上安装 MSBuild,请转到 Visual Studio 下载并向下滚动到所有下载,然后展开 适用于 Visual Studio 2019 的工具。安装适用于 Visual Studio 的构建工具 2019,其中包括 MSBuild,或安装 .NET Core SDK。
最后一部分是or install the .NET Core SDK.
问题
1> 我已经在 CI 服务器上安装了 NET5 SDK,是否也安装了 MSbuild 16.*,如果是,在哪个位置?
2> global.json 文件在哪里?
【问题讨论】:
标签: .net visual-studio msbuild asp.net-web-api2 .net-5