【问题标题】:Hybrid DotNet Core/.NET Framework Build with MSBuildHybrid Dotnet Core / .NET Framework构建使用MSBuild
【发布时间】:2017-08-13 08:15:30
【问题描述】:

dotnet msbuild

来自 sln 目录的作品

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe

来自解决方案目录的作品

我不希望 VS 2017 必须安装在构建机器上,所以我从 https://www.visualstudio.com/downloads/ 安装了“Visual Studio 2017 构建工具”。

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe

轰炸 sln 中的每个项目,并出现错误:

错误 MSB4019:找不到导入的项目“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props”。确认声明中的路径正确,并且该文件存在于磁盘上。

事实上 - 它不存在于磁盘上。它只存在于

的 VS 子文件夹中

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks

我已手动尝试安装 .NET 4.6 SDK、.NET Core 1.0 SDK 和 .NET Core 1.0.1 SDK(x86 和 x64 版本)。

有什么方法可以使 MSBuild 正常运行,还是像其他很多东西一样无法修复?

【问题讨论】:

    标签: .net msbuild .net-core visual-studio-2017


    【解决方案1】:

    我现在发现的唯一方法是创建一个编译配置,其中我针对所有 .NetCore 和 .net 标准项目以及针对所有 .Net 项目的另一个(或仅使用发布配置)。

    然后我使用MsBuild两次构建。

    MSBuild.exe MySolution.sln /p:Configuration=DotNetCore

    MSBuild.exe MySolution.sln /p:Configuration=Release

    它适用于 VS2017 解决方案。

    【讨论】:

      【解决方案2】:

      将 sdks 文件夹从 dotnet core install 复制到 msbuild tools 安装目录。

      【讨论】:

        【解决方案3】:

        构建工具安装程序当前不支持 .NET Core 工作负载。目前,您必须在构建机器上安装 Visual Studio(或者,如您所述,安装 .NET Core SDK 并调用 dotnet msbuild 而不是 msbuild.exe)。

        在 MSBuild 的 GitHub 存储库中跟踪此问题:https://github.com/Microsoft/msbuild/issues/1697

        【讨论】:

        • 另一种选择是将 sdks 文件夹从 dotnet 核心安装复制到 msbuild 工具安装
        • 另外使用 dotnet build 也不是一个好的选择,因为它不会过滤到特定的 sln 文件
        猜你喜欢
        • 2017-08-30
        • 2019-11-08
        • 1970-01-01
        • 2021-05-26
        • 2021-05-08
        • 2023-04-05
        • 2019-01-07
        • 2019-04-12
        • 2020-12-19
        相关资源
        最近更新 更多