使用MSBuild构建混合DotNet Core / .NET Framework

时间:2017-03-21 15:07:46

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

dotnet msbuild

来自sln目录的

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
来自解决方案目录的

我不希望VS 2017必须安装在构建机器上,所以我安装了#34;构建Visual Studio 2017工具"来自https://www.visualstudio.com/downloads/

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功能正常运行,还是像其他方式一样无可挽回地破坏?

3 个答案:

答案 0 :(得分:1)

我现在找到的唯一方法是创建一个编译配置,我将目标锁定所有.NetCore和.net标准项目,另一个针对所有.Net项目(或者只使用发布配置)。

然后我使用MsBuild两次构建。

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

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

适用于VS2017解决方案。

答案 1 :(得分:1)

将sdks文件夹从dotnet核心安装复制到msbuild工具安装目录。

答案 2 :(得分:0)

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

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