已启用Unsafe代码,为何Xamarin在VS2015中仍出现IDE错误?
我之前也碰到过一模一样的情况——在VS2015搭配Xamarin开发时,明明已经在项目属性里勾选了允许Unsafe代码选项,代码能正常编译通过,但IntelliSense就是一直飘红报错,完全是IDE层面的假警报,特别影响开发心情。
首先可以明确的是:你的操作本身没有问题,Xamarin项目启用unsafe代码确实是通过项目属性配置(或者手动编辑.csproj文件),和ASP.NET在web.config里设置的逻辑不一样。这种问题大概率是VS2015的Xamarin扩展和IntelliSense之间的兼容性Bug,毕竟那个版本的VS和Xamarin组件还存在不少小瑕疵。
给你几个亲测有效的解决办法:
强制刷新IntelliSense缓存
先关闭Visual Studio,找到项目根目录下的.vs隐藏文件夹(注意这个文件夹默认是隐藏的,需要开启显示隐藏文件),直接删除它。重新打开项目后,VS会重新生成IntelliSense缓存,很多时候就能消除这种无意义的报错。手动检查并修改项目配置文件
有时候项目属性的可视化设置可能没同步到.csproj文件里。你可以右键项目选择「卸载项目」,然后右键点击卸载后的项目选择「编辑.csproj」,在文件里找到<PropertyGroup>节点,确保里面包含:<AllowUnsafeBlocks>true</AllowUnsafeBlocks>如果没有就手动加上,保存后重新加载项目,再看看IntelliSense的报错是否消失。
更新Xamarin扩展到最新可用版本
VS2015的Xamarin扩展后续推出了不少补丁,修复了很多IDE相关的Bug。你可以打开VS的「工具」->「扩展和更新」,在「更新」列表里找到Xamarin相关组件,安装所有可用更新后重启VS,大概率能解决这类兼容性问题。临时妥协:忽略IDE错误
要是上面的方法都没效果,其实也可以暂时忍一忍——毕竟代码本身能正常编译运行,这个报错只是IntelliSense的问题,不会影响最终的程序功能。当然还是建议尽量解决,不然写代码时看着满屏红波浪线实在闹心。
内容的提问来源于stack exchange,提问作者Sold Out

