Mono Framework 5.10.0.16在Mac OSX下编译报错求助
解决Mono 5.10.0.16下VB.NET编译MSB3883报错问题
我之前碰到过几乎一模一样的问题,在Mac上换了三个IDE都卡在这里,折腾好一阵才找到几个有效的解决方向,给你参考:
核心问题定位
你遇到的报错是Mono自带的VB.NET编译器vbnc.exe执行失败导致的,这个版本的Mono对VB编译的兼容性确实有已知问题,尤其是在MacOS环境下的权限、路径或者临时文件处理上容易出问题。先把你贴的报错信息放出来方便对应:
Microsoft.VisualBasic.Core.targets(73, 5): [MSB3883] Unexpected exception: Microsoft.VisualBasic.Core.targets(73, 5): [null] System.ComponentModel.Win32Exception (0x80004005): ApplicationName='vbnc.exe', CommandLine=' /noconfig @"/var/folders/sj/sblgn2q93b1084nm213419f80000gn/T/tmp54fb2d36c21545118516981a1817b134.rsp"', CurrentDirectory='',...
具体解决步骤
- 优先升级/降级Mono版本:Mono 5.10.0.16这个版本的VB编译器有明显的稳定性问题,建议直接升级到Mono 5.12.0及以上版本(或者回退到5.8版本),这两个版本修复了不少
vbnc.exe的执行异常问题,我当时升级到5.12之后直接就好了。 - 检查
vbnc.exe的可执行权限:- 找到Mono安装目录下的
vbnc.exe,默认路径是/Library/Frameworks/Mono.framework/Versions/5.10.0/bin/vbnc.exe - 打开终端执行
chmod +x /Library/Frameworks/Mono.framework/Versions/5.10.0/bin/vbnc.exe,确保它有可执行权限
- 找到Mono安装目录下的
- 清理临时文件与IDE缓存:
- 手动删除报错里提到的临时目录
/var/folders/sj/sblgn2q93b1084nm213419f80000gn/T/下的所有临时文件 - 对应IDE清理缓存:
- VS for Mac:点击菜单
Projects > Clean All,再到Preferences > Projects > Build > Clear Cache - Rider:
File > Invalidate Caches...选择Invalidate and Restart - MonoDevelop:
Build > Clean All,然后Edit > Preferences > Build > Clear Cache
- VS for Mac:点击菜单
- 手动删除报错里提到的临时目录
- 调整项目目标框架:如果项目目标是.NET Framework 4.7及以上,改成.NET Framework 4.6.2试试,Mono 5.10对高版本框架的VB支持不够完善,降低框架版本能避开不少编译冲突
内容的提问来源于stack exchange,提问作者Xray25
相关产品推荐
相关产品推荐

