Unity 5中引用System.Data报错CS0234的解决方法咨询
解决Unity 5中System.Data命名空间引用报错的方法
我之前在Unity 5里也碰到过一模一样的问题——VS里明明手动加了引用,Unity控制台还是跳这个报错。其实核心原因是Unity的脚本编译机制和常规.NET项目不一样,光在VS里操作没用,得从Unity这边调整,给你几个靠谱的解决办法:
手动添加System.Data.dll到Unity项目
Unity默认不会自动包含System.Data相关的程序集,得手动把对应dll放进项目:- 找到和Unity兼容的
System.Data.dll(通常还要配套System.Data.Linq.dll):- Windows路径示例:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6(根据你Unity设置的.NET版本选对应文件夹) - Mac路径示例:
/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.6
- Windows路径示例:
- 把这两个dll复制到Unity项目的
Assets/Plugins文件夹下(没有Plugins的话直接新建一个) - 选中复制来的dll,在Inspector面板里设置Api Compatibility Level,和你项目的全局设置保持一致,避免版本冲突
- 找到和Unity兼容的
修改Unity的API兼容级别
很多时候报错是因为Unity用了精简版的.NET子集,砍掉了System.Data这类命名空间:- 点击顶部菜单
Edit -> Project Settings -> Player - 在右侧
Other Settings里找到Api Compatibility Level - 把它从
.NET 2.0 Subset改成.NET 2.0(如果你的Unity 5版本支持,也可以选更高的.NET 4.x版本) - 重启Unity和Visual Studio,让新设置生效
- 点击顶部菜单
同步Unity和VS的项目引用
有时候VS里加了引用,但Unity没同步到工程里:- 在Unity编辑器里右键你的脚本文件,选择
Open C# Project,让Unity重新生成VS工程文件 - 打开新生成的VS工程后,重新添加System.Data引用,再回到Unity等脚本编译完成
- 在Unity编辑器里右键你的脚本文件,选择
额外提醒:
- 一定要保证你复制的dll版本和Unity设置的API兼容级别匹配,比如Unity用.NET 2.0就别拿.NET 4.6的dll过来,不然会出新的编译错误
- 确保你的脚本放在Unity的
Assets文件夹或其子文件夹里,Unity只会编译Assets内的脚本,外面的脚本不会被识别
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

