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是原文件,其它文件是新生成的 )

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

//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

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

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

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

参考链接:

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

 

 

你可能感兴趣的:(Unity,dll文件强命令)