Unity 2019.2.11f1报错CS1703:重复导入相同标识程序集求解决
解决Unity 2019.2中CS1703重复程序集引用错误(System.Drawing.dll)
我之前在Unity 2019.x版本里碰到过一模一样的问题,给你几个经过验证的解决步骤,按顺序试试:
步骤1:调整项目内System.Drawing.dll的导入设置
- 找到你项目Assets目录下的
System.Drawing.dll,选中它 - 在Inspector面板里做以下设置:
- 将Api Compatibility Level设置为
.NET Framework(和Unity编辑器的设置保持一致,2019.2默认支持切换到这个选项) - 勾选Reference Only选项,让Unity只引用这个dll而不将其打包进项目
- 确保Don't allow unsafe code处于勾选状态
- 将Api Compatibility Level设置为
步骤2:清理缓存并重新生成项目文件
- 完全关闭Unity和Visual Studio
- 删除项目根目录下的这几个文件夹:
Library(Unity的核心缓存目录,删除后重启Unity会自动重新生成)obj、bin(Visual Studio的编译缓存文件夹).vs(Visual Studio的配置缓存,属于隐藏文件夹)
- 重新打开Unity,等待它完成项目文件的重新生成,之后再打开Visual Studio检查错误是否消失
步骤3:手动编辑csproj文件(操作前请备份)
如果上面的方法没效果,可以直接修改项目的csproj文件:
- 找到项目中的
Assembly-CSharp.csproj(或对应的其他项目csproj文件),用文本编辑器打开 - 搜索包含
System.Drawing.dll的引用节点,删除指向Unity编辑器自带路径(C:\Program Files\Unity\Hub\Editor\2019.2.11f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Drawing.dll)的那一行 - 只保留指向项目Assets目录下的
System.Drawing.dll的引用,保存文件后重新打开Unity
步骤4:替换兼容版本的System.Drawing.dll
如果项目中的dll版本和Unity自带的冲突,可以尝试替换成和Unity 2019.2兼容的版本:
- 找一个适配
.NET Framework 4.7.2(Unity 2019.2推荐的框架版本)的System.Drawing.dll,替换掉Assets里的现有文件 - 重复步骤1的导入设置,确保配置正确
补充:Unity 2019.x在.NET Standard和.NET Framework的兼容性过渡上存在一些小问题,优先使用
.NET Framework作为Api兼容性级别,能减少很多这类引用冲突。
内容的提问来源于stack exchange,提问作者Ricardo R




