【问题标题】:How to compile Full .NET along with NETStandard project如何编译完整的 .NET 以及 NETStandard 项目
【发布时间】: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


    【解决方案1】:

    您应该注意,.NET5 仅适用于至少 VS2019 16.8,它不能与 VS2017MSBuild 15.x 一起使用。请参阅Visual Studio support of Net5.0

    NET 5.0是dontet cli工具,MSBuild 16.x是VS的构建工具,它们是两个互不干扰的不同工具。

    要使用它,您应该下载 Build Tool for VS2019 并记得检查 Net Core 构建工具工作负载、.Net 桌面构建工具工作负载以及您使用的任何其他构建工作负载。

    或者您必须检查this document 以使用支持msbuild 15.6 的较低Net Core SDK(如Net Core 2.1.201)。

    注意:更改global.json 文件不是一个好的选择,它会更改您的内部项目并且存在风险。显然,更改外部构建工具更加安全和合规。

    更新 1

    在构建服务器上安装 VS2019 IDE 即可解决问题。

    【讨论】:

    • 我通过在构建服务器上安装 VS 2019 解决了这个问题。 (仅安装 2019 年的构建工具 + Net Core 构建工具对我不起作用)
    • 另外你要构建net472项目,还要检查net桌面构建工具,如果你使用与VS2019集成的其他工具,你必须安装VS2019 IDE。
    • 感谢分享解决方案,很高兴知道您已经解决了问题。为了帮助改进票证,我已将您的解决方法添加到答案中,您可以标记答案以帮助其他社区成员搜索和处理类似问题。你这样做真是太好了。祝你有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多