问题描述:
我们在做项目的过程中免不了使用Nuget安装一些其他系统发布的dll,以完成我们的业务代码,但是在使用的过程中遇到一个问题,那就是因某些原因造成引用无效,其表现如下:
导致这种情况发生的原因很多,我现在要说的是其中 一种,那就是引用的dll被删除了,我们需要重新在Nuget里面进行安装,这时问题来了,当我们查找到想要的dll时,显示已经安装,如下图所示:
但是我们在已经安装的包里面进行查找,发现并没有,如下图所示
而且我们在解决方案的项目文件目录中也找不到目标dll,肿么办?明明没有,却说我们已经安装了,如此“冤枉”我们,不能忍!必须找出来“凶手”!
问题分析:
Nuget是如何来管理dll的,无非也是通过配置文件嘛。问题肯定就出在配置文件上,然后我去找问题所在项目里的包配置文件packages.config,这个文件只要你使用Nuget添加过引用,都会在相应的项目文件里自动创建,如下图:
打开这个文件,我们会看到该项目通过Nuget引用了哪些包(dll文件),如下图:
与我们在Nuget包管理器中所看到的进行对比(如下图),我们就会发现问题所在
ITOO.ExamEvalConfigure.ViewModel这个dll没安装,但是在packages.config文件里有它的配置信息,这就导致了我们在Nuget中查找dl包时,老是显示已安装,无法重新安装的的问题。
解决办法:
将packages.config文件中已经失效的配置信息删除,重新生成,即可在Nuget中重新安装,如下图所示
小结:
在调试代码或者解决问题的时候,我们用的最多的就是尝试法,或者是穷举法去解决问题,想到什么地方就立刻去试,这对于我们这群没什么经验的菜鸟来讲是无可厚非的,但是我们也要尝试经过推理分析,之后锁定问题根源,一击必杀!能达到如此境界,需要我们的经验,也需要我们懂得更多才可以,这就是我们每个人努力的方向。