卸载或重装软件提示缺少msi的解决方法
很多软件只提供.exe
安装包,但我们清理硬盘有时会把软件预留的卸载包(.msi)删掉,这时从设置就卸不掉软件,提示缺少msi
一般程序会使用原生的.msi
作为安装器,再套一层.exe
的壳作为UI。
大部分软件卸载的逻辑和安装流程是相反的,因此开发者们就把安装包复制一份到系统目录,卸载时系统使用不同的选项,以此来实现卸载功能。
但是,大部分安装程序的逻辑是先卸载旧版本,再安装新版本 ,而由于旧程序存放在系统目录中的安装包(.msi)缺失,所以无法卸载,也无法重新安装。
即使你刚下的.exe
安装包内就存着那个.msi
安装包,但因为先卸载的缘故,安装程序会因为旧版无法卸载而退出。也就卡在死循环里。
这里介绍几种解决的方法(按易用性和完备性排序)
1. 从Temp目录找安装包
很多.exe
安装程序会在打开后把.msi
安装包释放到%TEMP%
目录,我们可以从那里找。
先下载与已安装的软件相同版本的安装包 ,打开 .exe
安装程序,不要关闭窗口。
然后按下Win+R
,输入%TEMP%
打开Temp目录,复制地址栏的地址,黏贴进Everything的搜索框内,在后面打一个空格,加上.msi
Everything下载:https://www.voidtools.com/zh-cn/downloads/
搜索词:
搜索词
C:\Users\你的用户名\AppData\Local\Temp .msi
然后点击"修改时间",改成按照最近优先排序(箭头朝下)。
找到后缀为.msi
的第一个安装程序,右键选择属性 > 详细信息 ,查看是不是你要安装/卸载的软件。如果是,把他填进缺少msi界面的输入框就搞定了。(填进去报错的可以把.msi安装程序的名字改成界面上说的名字再试)
2. 从安装程序提取安装包(推荐)
挂好环境,下载
Universal Extractor(github.com/Bioruebe/UniExtract2/releases/latest)
打开压缩包,直接运行UniExtract2.exe
从官网下载与已安装的软件相同版本的安装包 ,把下载的.exe
安装程序拖拽到 UniExtract2 的窗口中,点击确定。
解包过程完成后,打开与安装程序同名的文件夹 ,仔细搜索文件和文件夹。重点关注是否有.msi结尾的安装包。
找到.msi
安装包后,把他填进缺少msi界面的输入框就搞定了。(填进去报错的可以把.msi安装程序的名字改成界面上说的名字再试)
3. 手动移除软件信息(会留痕)
既然安装程序检测到你已经安装了这个软件,才让你卸载,那么可以把软件的信息抹除,这样安装程序就会认为你没有安装过软件,就进入正常安装的流程了
要卸载软件的也可以按照这个方法,先完整重装一边再卸载
注意:自己手动去删大概率删不干净,用软件自带的安装程序是最好的卸载方式
方式:参考
[微软官方安装卸载修复工具、恶意软件删除工具,了解下!]
使用文中第一个工具程序安装和卸载修复工具
,先把软件移除,再从官网下载与已安装的软件相同版本的安装包,在原来安装的位置安装一遍。
之后就可以正常使用设置 (控制面板)里的卸载功能了。
如果本文解决了你的问题,可以给文章点个赞。也可以在评论区交流方法。