VS for Mac 2017 使用 .NET Core SDK 而不是 Mono 构建



我有几个针对.NET Standard 2.0或.NET Core 2.1组合的解决方案。我安装了最新的 .NET Core 2.1 SDK。

当我通过Visual Studio for Mac构建它们时,我注意到它使用的是Mono构建工具,而不是dotnet例如csc.exe

Target CoreCompile:
    /Library/Frameworks/Mono.framework/Versions/5.16.0/lib/mono/msbuild/15.0/bin/Roslyn/csc.exe 

是否有选项或其他属性需要更改,以便它可以使用 SDK 而不是 Mono 工具?

Visual Studio for Mac中没有使用dotnet进行构建的选项。它使用 msbuild。如果你真的想这样做,你需要绕过VS Mac提供的内置支持和使用msbuild。

VS Mac使用Mono附带的msbuild,因为它支持比.NET Core SDK的MSBuild更多的目标框架(例如Xamarin.iOS,Xamarin.Android)。请注意,Windows 上的 VS 采用类似的方法,它使用桌面 MSBuild 来运行生成,而不使用 dotnet 生成。

但是,Mono的MSBuild

仍然使用.NET Core SDK附带的各种MSBuild sdk目标文件。Mono附带了一个MSBuild sdk解析器,它允许找到和使用.NET Core SDK msbuild目标。

另请注意,Mono的MSBuild包含.NET Core SDK的某些部分,因此它可以编译.NET Standard项目,而无需.NET Core SDK。

最新更新