VS for Mac 2017 使用 .NET Core SDK 而不是 Mono 构建
VS for Mac 2017 building with .NET Core SDK instead of Mono
我有几个针对 .NET Standard 2.0 或 .NET Core 2.1 的某种组合的解决方案。我安装了最新的 .NET Core 2.1 SDK。
当我通过 Visual Studio 为 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 工具?
对于 Mac,Visual Studio 中没有使用 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 Core SDK 的情况下编译 .NET Standard 项目。
我有几个针对 .NET Standard 2.0 或 .NET Core 2.1 的某种组合的解决方案。我安装了最新的 .NET Core 2.1 SDK。
当我通过 Visual Studio 为 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 工具?
对于 Mac,Visual Studio 中没有使用 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 Core SDK 的情况下编译 .NET Standard 项目。