项目问题总结1:Nuget无法安装程序包dll,提示:此程序包已安装

问题描述:

我们在做项目的过程中免不了使用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中重新安装,如下图所示

小结:

在调试代码或者解决问题的时候,我们用的最多的就是尝试法,或者是穷举法去解决问题,想到什么地方就立刻去试,这对于我们这群没什么经验的菜鸟来讲是无可厚非的,但是我们也要尝试经过推理分析,之后锁定问题根源,一击必杀!能达到如此境界,需要我们的经验,也需要我们懂得更多才可以,这就是我们每个人努力的方向。

时间: 2024-12-28 00:05:30

项目问题总结1:Nuget无法安装程序包dll,提示:此程序包已安装的相关文章

VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。

1.用dotnet --info查询当前安装的.NET Core SDK版本 2.打开glabal.json配置,查看配置中指定的版本 3.下载对应的2.1.401版本 https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-2.1.401-windows-x64-installer 4.重新加载项目 5.加载成功 参考博客:https://www.cnblogs.com/Juning/p/11637244.html 原文地

关于Cocos2d-x程序运行时候提示关闭程序的解决方法

这个情况是资源没有被加载的表现 如果AppDelegate.cpp里面没有文件索引的语句 FileUtils::getInstance()->addSearchPath("res");,就更加说明是资源找不到的问题 解决方法 把资源直接复制在Resources文件的根目录下,不要放在Resources/Res目录下.

windows installer 程序包有问题,此安装需要的DLL不能运行

错误提示:windows installer 程序包有问题,此安装需要的DLL不能运行 原因:第一次安装了没有完成或没有完全卸载掉,所以导致再次安装也装不上,其余没卸载掉的在卸载也下载不了 解决办法:1.首先确保windows installer服务是开启的,运行services.msc,看看windows installer服务是否启动.先启动看看能否解决. 2.下载一个windows install clean up,安装运行后将之前卸载不掉的jdk进行remove:再次安装(或者    下

UninstallView(已安装程序查看器)

软件简介: UninstallView 是一个收集在你系统已安装所有程序信息和在一个表中显示已安装程序的详细信息的工具.你可以使用它获取你的本地系统.你的网络上远程电脑和你电脑的外部可插拔的硬盘的程序信息.它允许你轻易的卸载在你本地电脑或远程电脑的软件. 图片预览: 下载地址:http://dickmoore.cn/Down/uninstallview.zip 文章作者:DickMoore 文章来源:开怀软件园

静默安装apk的方法--Android是否可以实现静默安装模式

只对于能看懂能编译安卓源码的兄弟们: pakcagemanagerservice.java中三个installpackage打头的函数 最后一个函数第一行代码就是检查这个PERMISSION,去掉就可以了. 但是您不能直接去掉原来的函数里面的代码,您可以自行添加一个API,函数和installpackage里面的一样,差别就是少了检查PERMISSION这行 下面这个文章有点老了 (1)在网上搜寻该问题的解决方法,且查阅android开发文档,没有发现可以实现该功能的显示API调用,网络上很多人

Linux-rpm命令-查看已安装软件包信息及未安装rpm包信息

博文说明[前言]: 本文将通过个人口吻介绍rpm命令,包括查看已安装软件包信息及未安装rpm包信息. 在目前时间点[2017年6月12号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 正文: RPM常用命令中的各种缩写选项,其实是有依据的,弄明白之后,其实很好玩,我们可以参考下方:q=queryp=packagei=infol=listf=filec=conf... 一:查看系统已

linux常用命令(查看某些软件是否已安装)

查看imap是否已安装 rpm -qa | grep imap 以下为未安装的情形:   检查是否已安装sendmail: rpm -qa | grep sendmail 以下为已安装的返回:

5周第1次课 安装软件包的三种方法 rpm包介绍 yum工具用法 yum搭建本地仓库

Linux 安装软件的三种方式 rpm 工具:此种安装方式即通过rpm 工具对介质上的rpm 包进行安装. yum 工具:核心依然是rpm,但不同的是它是基于网络的源,并会自动安装依赖组件. 源码包:源代码包,需要相应的编译器进行编译,然后才能安装.三种方式里最难的. 1.rpm 工具 rpm包的来源:光盘或其他地方拷贝本次实验,将Centos7虚拟光盘加载到虚拟机上 1.1 进入系统后执行挂载 [[email protected] ~]# mount /dev/cdrom /mntmount:

Ubuntu下deb包的解压、打包、安装、卸载及常用命令参数

1.首先下载deb包,比如:将其放在 /home/tools/ 根目录下: 2.进入到tools根目录下的终端,输入下面命令创建文件夹extract,并在extract文件夹下创建DEBIAN文件夹 mkdir -p extract/DEBIAN 3.将deb包解压到extract文件夹下 dpkg -X ./xxx.deb extract 4.解压deb包中的control信息(包的依赖在这里面的control文件中) dpkg -e ./xxx.deb extract/DEBIAN 5.创建

二十二、yum更换国内源、yum下载rpm包、yum源码包安装

一.yum更换国内源(更换yum仓库源) 1. # cd /etc/yum.repos.d/          进入到这个目录里边 2. # rm -f dvd.repo                    删除之前创建的这个文件 # cp ../yum.repos.d.bak/* .       复制之前备份的文件回来 # rm -f CentOS-Base.repo        将最核心的这个文件删除,可以ls查看到 3.# wget http://mirrors.163.com/.he