Unity项目出现UnityEngine.UI和EventSystem命名空间找不到问题&&解决Unity不同版本dll冲突

网上一大堆相关的介绍,貌似我大部分搜索到的都是说用的是VS Code导致的,但我用的是VS2017,Unity版本是2019.3.2

根据个人开发所遇到的出现的这种情况有三类

1.Unity项目升级,如从2017升级到2019

2.导入插件包,如burst、Jobs、布料插件等

3.导入功能插件,该功能插件存在与你的当前项目相同名称的dll文件

对于第一种,可尝试删除项目的Library文件,因为Library文件夹里存放了持有对Unity相应dll的引用,它会将电脑安装Unity的目录中的dll拷贝进来,删除后意味着需要重新再拷贝。因此,可先关闭项目,删除Library文件夹,重启项目

第二种,将插件包删除后再重新导入,重启项目试试看,部分插件包导入有先后顺序

第三种,dll文件重名,这时候会报错说存在相同的多个dll文件,Unity编译dll报错,因此需要将dll文件强命名。重点来了,如何强命名,直接将dll改名是行不通的,需要借助VisualStudio的强大工具。下面重点介绍第三种情景的解决方案,具体如下:

首先打开VS的命令行,注意必须是以管理员的方式打开。我的重名dll是OpenCvSharp.dll,在项目中存在两个不同版本,所以当前需要强命名其中的一个。

拷贝其中一个dll,在桌面新建文件夹并存放OpenCvSharp.dll (下图中的OpenCvSharp.dll是原文件,其它文件是新生成的 )

//a.进入当前文件夹 
cd xxx
//在当前文件夹生成key
sn -k OpenCvSharp.snk
//定义强命名的dll的中间生成il文件
ildasm OpenCvSharp.dll /out-OpenCvSharpHigh.il
ilasm OpenCvSharp.dll /resource=OpenCvSharpHigh.res /key=OpenCvSharp.snk /optimize

参考链接:

https://www.cnblogs.com/dotnet261010/p/12401843.html

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值