使用MSBuild的混合DotNet Core/.NET框架构建
使用MSBuild的混合DotNet Core/.NET框架构建,.net,msbuild,.net-core,visual-studio-2017,.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 从解决方案目录工作 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe 我不希望VS 2017必须安装在生成计算机上,因此我从安
dotnet msbuild
从sln目录开始工作
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
从解决方案目录工作
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
我不希望VS 2017必须安装在生成计算机上,因此我从安装了“Visual Studio 2017生成工具”
轰炸sln中的每个项目,错误如下:
错误MSB4019:未找到导入的项目“C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Sdk\Microsoft.NET.Sdk\Sdk\Sdk.props”。确认声明中的路径正确,并且文件存在于磁盘上
事实上,它不存在于磁盘上。它仅存在于的VS子文件夹中
C:\ProgramFiles(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\SDK
我已手动尝试安装.NET 4.6 SDK、.NET Core 1.0 SDK和.NET Core 1.0.1 SDK(x86和x64版本)
是否有任何方法可以使MSBuild正常运行,还是像其他许多方法一样无法修复地损坏?生成工具安装程序当前不支持.NET核心工作负载。目前,您必须在生成计算机上安装Visual Studio(或者,正如您所注意的,安装.NET Core SDK并调用
dotnet msbuild
,而不是msbuild.exe
)
此问题在MSBuild的GitHub存储库中进行了跟踪:。我现在找到的唯一方法是创建一个编译配置,其中我针对所有.NetCore和.net标准项目,另一个针对所有.net项目(或只使用发布配置) 然后我使用MsBuild两次来构建 MSBuild.exe MySolution.sln/p:Configuration=DotNetCore MSBuild.exe MySolution.sln/p:Configuration=Release
它适用于VS2017解决方案。将SDK文件夹从dotnet core安装复制到msbuild tools安装目录 另一个选项是将SDK文件夹从dotnet core安装复制到msbuild tools安装。使用dotnet build也不是一个好选项,因为它不会过滤到特定的sln文件