当我尝试构建我的 Xamarin iOS 项目时,我收到此错误:
/Library/Frameworks/Mono.framework/Versions/5.0.1/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets(5,5):错误MSB6006:“csc.exe”退出代码 1. (MSB6006)
似乎是因为 Mono 5.0,但我不知道如何修复它!
当我尝试构建我的 Xamarin iOS 项目时,我收到此错误:
/Library/Frameworks/Mono.framework/Versions/5.0.1/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets(5,5):错误MSB6006:“csc.exe”退出代码 1. (MSB6006)
似乎是因为 Mono 5.0,但我不知道如何修复它!
Roslyn 中实际上存在与编译项目相关的上游错误,该错误包含async partial
导致此问题的方法。
Xamarin 错误跟踪器上的公共错误56246已提交,以跟踪上游“csc.exe”修复程序包含在 Mono 5.0 中。
Mono 5.0 和 Mono 4.8.1 都包含 mcs(Mono 的编译器)和 csc,然而,Mono 4.8.1 默认使用 mcs,而 5.0 默认使用 csc。
在等待修复使其适用于 Xamarin 环境时,有一个临时解决方法可以让您启动并运行。您可以在 Mono 5.0 中暂时切换回使用 mcs 和 xbuild:
将以下PropertyGroup
元素添加到应用项目的 .csproj 文件底部的结束</Project>
标记之前:
<PropertyGroup Condition=" '$(OS)' == 'Unix' ">
<CscToolExe>mcs.exe</CscToolExe>
</PropertyGroup>
禁用Visual Studio > Preferences > Build > Build with MSBuild instead of xbuild
.
关闭,然后重新打开解决方案并仔细检查新设置。
清洁和重建。
尝试下载并安装 Mono 4.8。如果您使用需要 Mono 5.0 或更高版本的 VS for Mac,则需要小心。如果是这种情况,您应该能够下载 4.8 而不将其设置为默认值,然后在启动 VS 到 4.8 后更改首选项中的 .NET 运行时。