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,但我不知道如何修复它!

4

2 回答 2

2

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

  1. 将以下PropertyGroup元素添加到应用项目的 .csproj 文件底部的结束</Project>标记之前:

    <PropertyGroup Condition=" '$(OS)' == 'Unix' "> <CscToolExe>mcs.exe</CscToolExe> </PropertyGroup>

  2. 禁用Visual Studio > Preferences > Build > Build with MSBuild instead of xbuild.

  3. 关闭,然后重新打开解决方案并仔细检查新设置。

  4. 清洁和重建。

于 2017-06-05T16:24:18.747 回答
0

尝试下载并安装 Mono 4.8。如果您使用需要 Mono 5.0 或更高版本的 VS for Mac,则需要小心。如果是这种情况,您应该能够下载 4.8 而不将其设置为默认值,然后在启动 VS 到 4.8 后更改首选项中的 .NET 运行时。

于 2017-06-04T15:01:56.570 回答