存在多个同名Newtonsoft.Json.dll预编译程序集,删除重命名后仍恢复如何解决
运行时触发报错:Multiple precompiled assemblies with the same name Newtonsoft.Json.dll included for the current platform
该问题多出现于Unity项目,删除重复dll后自动恢复通常是因为包管理器自动还原、第三方SDK自带资源校验逻辑导致的,可按以下方案依次排查解决:
- 优先检查Unity Package Manager(UPM)和第三方插件的版本冲突:
打开Window > Package Manager,搜索Newtonsoft Json,如果已安装官方的com.unity.nuget.newtonsoft-json包,说明是UPM自带版本和插件自带的dll重复,二选一处理即可:- 保留UPM版本:找到第三方插件目录下自带的Newtonsoft.Json.dll,选中后在Inspector面板取消所有平台的导入勾选,或是直接给文件加
.ignore后缀,无需删除文件即可避免被识别,也不会触发自动恢复逻辑。 - 保留插件自带版本:直接在Package Manager中卸载官方的Newtonsoft.Json包,后续删除多余dll就不会被自动还原。
- 保留UPM版本:找到第三方插件目录下自带的Newtonsoft.Json.dll,选中后在Inspector面板取消所有平台的导入勾选,或是直接给文件加
- 排查多个第三方插件各自携带dll的冲突:
如果是多个商业SDK各自带了Newtonsoft.Json.dll,删除后自动恢复多是因为SDK开了资源完整性校验,不需要删除文件,选中版本号更低的dll,在Inspector的导入设置中取消所有平台的勾选即可,也可以给不同的dll绑定不同的Assembly Definition文件,规避同名程序集冲突。 - 清除项目缓存解决残留冲突:
上述操作完成后如果还有报错,关闭Unity,删除项目根目录下的Library、Temp文件夹,重新打开Unity触发全量重编译即可。
内容的提问来源于stack exchange,提问作者Sk66ly
相关产品推荐
相关产品推荐

