我有几个针对.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。