之前,使用U3d 2018.2.12f1做了个项目,连接了Sql Server数据库,采用的是下面的办法:
我复制了C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity下面的I18N.dll,I18N.CJK.dll,I18N.West.dll和System.Data.dll文件到项目的Assets\Plugins下,测试连接数据库成功。
近日,更新了U3d版本到2018.4.14f1,发现这样做不行了,提示如下,大体意思有两个重复的dll,也就是项目默认的System.Data.dll(位置:C:\Program Files\Unity\2018.4.14f1-new\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Data.dll)和我导入的这个(位置:C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity)重复。删除默认的无效,查看默认的System.Data.dll版本是4.0,而我复制过来的是2.0。
error CS1703: Multiple assemblies with equivalent identity have been imported: 'D:\Fonger\Documents\Unity Projects\2018.4.14f1\NewBook\Assets\Plugins\System.Data.dll' and 'C:\Program Files\Unity\2018.4.14f1-new\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Data.dll'. Remove one of the duplicate references.
由此,我想到查看【PlayerSettings】-->【Other Settings】-->【Scripting Runtime Version*】,发现2018.4.14f1强烈不建议使用.Net 3.5 Equivalent,括号带着Deprecated,默认使用了.Net 4.x Equivalent。我想问题大概就是这里的,因此改回.Net 3.5,这次项目自动使用了我放置在Plugins下面的2.0版本的System.Data.dll。
然后,我查看了2019.1之后的U3d版本,也没有在位置C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity提供更新版本的System.Data.dll。关键是,使用默认的4.0版本的System.Data.dll无法using System.Data.SqlClient。问题来了, 选择.Net 4.x,如何using System.Data.SqlClient呢?