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

4

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
在解决方案中的每个项目上出现错误:

错误 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个回答

1
现在我发现唯一的方法是创建一个编译配置,其中我针对所有.NetCore和.net Standard项目进行目标设置,另一个则针对所有.Net项目(或者只需使用发布配置)。
然后我使用MsBuild两次进行构建。
MSBuild.exe MySolution.sln /p:Configuration=DotNetCore MSBuild.exe MySolution.sln /p:Configuration=Release 这适用于VS2017解决方案。

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

0

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

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


另一个选项是将sdks文件夹从dotnet core安装复制到msbuild工具安装中。 - Jeff
同时,使用dotnet build也不是一个好的选择,因为它不能过滤到特定的sln文件。 - Jeff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接