[Unity 3D] Unity 3D中使用第三方DLL

Unity 3D项目中使用第三方DLL总是免不了的事情,使用方法也很简单,在项目根目录(Assets/目录)下建立Plugins目录,然后将DLL放入此目录即可。然而在实际项目中,第三方DLL放入项目后,时不时会出现这样的编译错误:

Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly 'ReflectableExcelReader'.

  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 


 

出现这类编译错误最常见的原因是:Unity 3D无法非常及时对新版本.NET做到完全支持,如果第三方DLL在编译时使用了新版本.NET框架,那么在Unity 3D中使用时就会出现编译问题。

解决这个问题的办法也很不复杂,只需要在编译DLL时选择较低版本的.NET框架就可以了,以Unity4为例,虽然支持.NET 4.0,但是还不完全,如果编译DLL时选用.NET 4.0框架会有问题,但选用.NET 3.5框架就正常了;如果一定要用.NET 4.0,也不是没有办法,但是需要用Unity 3D附带的MonoDevelop来编译DLL,用MonoDevelop编译DLL可以做到最大程度上与Unity 3D兼容。当然了,以上方法都有一个前提:你手里得有DLL的源码!没有源码还编译个蛋啊……万一真没源码,那就只好升级Unity 3D或者等Unity 3D的新版本……

你可能感兴趣的:([Unity 3D] Unity 3D中使用第三方DLL)