You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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处于勾选状态

步骤2:清理缓存并重新生成项目文件

  • 完全关闭Unity和Visual Studio
  • 删除项目根目录下的这几个文件夹:
    • Library(Unity的核心缓存目录,删除后重启Unity会自动重新生成)
    • objbin(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

火山引擎 最新活动