不重装软件也能取出安装包里的文件:lessmsi 提取 MSI 文件 3 分钟入门指南
2026/8/18 1:58:11 网站建设 项目流程

不重装软件也能取出安装包里的文件:lessmsi 提取 MSI 文件 3 分钟入门指南

【免费下载链接】lessmsiA tool to view and extract the contents of an Windows Installer (.msi) file.项目地址: https://gitcode.com/gh_mirrors/le/lessmsi

周一早上九点,小周打开电脑,准备处理昨天没做完的报表。结果刚点开内部 OA 客户端,屏幕上就弹出一行刺眼的错误:某个动态链接库文件已损坏,程序无法启动。她翻遍了备份盘,发现原始安装包(.msi 文件)还在,可问题是——她只想找回那一个损坏的文件,难道要把整套软件再装一遍?这个场景是不是很眼熟?今天要介绍的 lessmsi,就是专门解决这类"安装包只想要一两个文件"难题的免费开源工具,它同时提供图形界面和命令行两种操作方式,让查看与提取 MSI 安装包内容变成一件三分钟就能搞定的小事。

一、周一的"系统事故":她只想要一个文件

小周的故事绝非个例。系统管理员要恢复被误删的系统组件、开发人员要研究第三方软件的安装包结构、普通用户想从安装包里"偷"一张模板或配置文件……这些需求的共同点只有一个:我们需要的不是软件本身,而是藏在安装包里的某个文件。

在遇到 lessmsi 之前,小周的第一反应是上网搜"如何解压 MSI 文件"。结果搜出来的方法五花八门:有的说改扩展名用压缩软件打开(结果打不开),有的说用系统自带的 msiexec 静默安装(结果装了一堆不想要的东西)。折腾了半个多小时,一无所获。

这个痛点,正是 lessmsi 存在的意义。它是一款专门针对 Windows Installer(.msi)文件设计的查看与提取工具,不安装、不写注册表、不改系统设置,纯粹"打开看、挑着拿"。

二、先搞明白:MSI 安装包到底是个什么"箱子"

工欲善其事,必先利其器。在使用 lessmsi 之前,我们得先理解一件事:MSI 文件不是普通的压缩包。

普通压缩包(比如 zip)里就是一堆文件,解压就完事。而 MSI 是 Windows Installer 的安装数据库,它内部由多张结构化"表"组成:哪份文件装到哪个目录、属于哪个组件、对应哪个注册表项、需要什么版本的运行库……这些信息全以数据库表格的形式存在。所以想从 MSI 里取文件,不能靠简单的解压工具,必须有人帮你读懂这套数据库结构。

lessmsi 干的就是这件事:它解析 MSI 内部数据库,把文件与目录的对应关系还原出来,再按你的要求提取。换句话说,它把"拆安装包"这件技术活,翻译成了人人能看懂的操作。

三、lessmsi 是谁?为什么新手也能放心用

lessmsi 是 GitHub 上一个持续维护多年的开源项目(它还有个更俏皮的名字叫 "Less MSIérables")。它的核心定位非常单纯:查看和提取 Windows Installer(.msi)文件的内容。基于 .NET Framework 4.8 开发,对 Windows 10 及更高版本都有良好支持。

从源码结构上看,项目分成清晰的三块:

  • src/LessMsi.Core/——核心引擎,负责读取 MSI 数据库、调度文件提取;
  • src/LessMsi.Cli/——命令行接口,适合脚本化、批量操作;
  • src/LessMsi.Gui/——图形界面,适合可视化浏览和按需勾选。

对新手来说,最友好的一点是:它完全免安装。下载压缩包解压后直接双击运行,不向系统里塞任何后台服务或开机自启项。用完了删掉文件夹,干干净净。

四、出发前:三分钟拿到并启动工具

小周决定试试。第一步自然是拿到工具本身:

  1. 前往项目发布页下载最新的压缩包(zip 格式),解压到任意目录;
  2. 如果你更信任"从源码编译"的仪式感,也可以把仓库克隆到本地自己构建:
git clone https://gitcode.com/gh_mirrors/le/lessmsi
  1. 双击目录里的 lessmsi.exe。什么参数都不带直接运行,就会自动打开图形界面;当然,也可以在命令行里随时呼出。

到这里,准备工作就完成了。别小看"免安装"三个字,在讲究纯净的公司电脑上,不需要管理员授权就能运行的工具,往往才是真正能用的工具。

五、第一回合:用命令行 30 秒定位目标文件

小周是个急性子,她决定先试试传说中"效率最高"的命令行。打开命令提示符,切到 lessmsi 所在目录,第一步先看看安装包里到底有哪些文件:

lessmsi l -t File C:\安装包\OA客户端.msi

l是"列出(list)"的意思,-t File表示列出 File 表。命令执行后,屏幕上会以 CSV 格式输出一份文件清单——文件名、大小、版本等信息一目了然。很快她就锁定了那个损坏的 DLL 的名字。

接下来,提取整个安装包到指定目录:

lessmsi x C:\安装包\OA客户端.msi C:\extracted

如果只想提取某一个文件,把文件名追加在最后就行:

lessmsi x C:\安装包\OA客户端.msi C:\extracted MyApp.dll

小提示:x命令不写输出目录时,会在当前目录下自动创建以安装包命名的文件夹,省得手动建目录。

屏幕上一行行滚动出提取进度,前后不到半分钟,那个损坏的 DLL 已经安静地躺在了目标文件夹里。小周复制过去替换掉坏文件,OA 客户端重新启动,一切恢复正常。全程没有安装任何软件,没有重启电脑。

六、第二回合:图形界面里"看着选"

命令行虽快,但"看不见摸不着"的感觉让一些新手心里没底。没关系,lessmsi 的图形界面就是为这种人准备的。双击 lessmsi.exe 打开主窗口,通过菜单打开目标 MSI 文件,会看到三个标签页,默认停在"Extract Files"文件提取页:

图:lessmsi 的文件提取页,逐行展示安装包内的文件与目标目录、大小、版本。

在这个页面里,安装包内部结构被翻译成了一目了然的表格:文件叫什么、会被装到哪个目录、占多大空间、什么版本,全部列得清清楚楚。需要什么就勾什么,窗口底部还有"Select All"全选和"Unselect All"取消全选两个按钮,选好之后点"Extract"提取按钮,选中的文件就会被释放到指定目录。

小周觉得,对不熟悉命令行的同事来说,这种"看得见的选择"比背参数友好太多了——尤其是只需要一两个文件时,勾选比敲名字更不容易出错。

七、小进阶:覆盖、平铺、重命名,三种提取模式怎么选

用了几次之后,小周发现x命令还有一个隐藏的"家族"。面对不同的使用场景,提取模式其实有四种,用不同的子命令触发:

子命令行为适合场景
x按安装包原始目录结构提取日常默认,还原真实布局
xo提取并覆盖目标目录中同名文件重复提取、更新已提取内容
xfo平铺提取(不保留目录层级),同名覆盖只要文件、不要目录结构
xfr平铺提取,同名文件自动改名加序号多个子目录出现同名文件时防冲突

举例来说,假如你要把某安装包里所有 DLL 都"摊平"到一个文件夹里方便批量扫描,就用xfo;如果担心不同目录下的同名 DLL 互相覆盖,就用xfr,它会自动给重复文件加上序号后缀。选对了模式,很多"提取出来的文件布局不对"的问题根本不会发生。

八、最省事的日常姿势:右键菜单一键提取

命令行要用,图形界面要开,有没有更"懒"的办法?有。lessmsi 支持与 Windows 资源管理器深度集成,启用之后,在任意 .msi 文件上点右键,菜单里直接多出一项"Extract Files":

图:启用集成后,在资源管理器中右键 MSI 文件即可一键提取。

启用方法也很简单:打开 lessmsi,在编辑菜单里找到 Preferences 偏好设置,勾选"Add Shortcut Item to Explorer"即可,想移除时再勾掉下面那一项:

图:偏好设置窗口,一键添加或移除资源管理器右键提取入口。

从此以后,日常取文件根本不需要先打开任何程序——右键、提取、选目录,三步搞定。小周把这项功能推荐给了整个部门,据说当天下午就有三个同事来问她"这个右键提取是怎么装上的"。

九、顺手"解剖"安装包:表格视图与摘要信息

提取文件只是 lessmsi 的一半功力。它还有一项让技术人员爱不释手的本事:直接查看 MSI 内部的数据库表格。切到"Table View"标签页,就能看到安装包里的组件表、属性表等原始数据,每个组件对应哪个 GUID 一目了然:

图:Table View 标签页,展示 MSI 组件与 GUID 的对应关系。

这有什么用?对做软件打包、做部署方案的工程师来说,分析安装包的组件依赖关系、排查"某个组件为什么没装上",靠的就是这张表。命令行里同样能查:

lessmsi l -t Component C:\安装包\OA客户端.msi

而"Summary"标签页则展示安装包的元数据——标题、代码页、版本、修订号等摘要信息,相当于看一眼这个安装包的"身份证":

图:Summary 标签页,展示 MSI 文件的标题、代码页、版本等摘要字段。

对于只想取文件的普通用户,这两个页面可以跳过;但对于需要深度分析安装包的场景,它们就是免费的"安装包显微镜"。

十、新手最容易踩的 4 个坑

用的人多了,踩坑的故事也多。小周把这些坑总结成了一份"避雷清单":

坑 1:把 .msi 当压缩包,改扩展名硬解压。MSI 不是 zip,改扩展名只会得到一堆乱码。正确姿势是交给 lessmsi 这类专用工具解析。

坑 2:分不清"提取"和"安装"。提取只是把文件复制出来,不会写注册表、不会装服务、不会改系统设置;而双击 .msi 默认是安装。想"只拿文件不安装",请务必用提取工具。

坑 3:重复提取时覆盖了之前的旧文件。多次提取到同一目录,同名文件可能被悄悄覆盖。要么给每个安装包建独立目录,要么用xfr让同名文件自动改名。

坑 4:以为工具只能处理 .msi。实际上 lessmsi 同样能查看和提取 MSP(Windows 补丁包)等内容,测试目录里就躺着不少 .msp 样例。遇到补丁包,别忘了它也能出手。

十一、常用命令速查表

给懒得翻上文的朋友,这里是一张可以随时抄作业的命令速查表:

目的命令
列出安装包 File 表lessmsi l -t File 包.msi
列出安装包组件表lessmsi l -t Component 包.msi
提取全部文件lessmsi x 包.msi 输出目录
提取指定文件lessmsi x 包.msi 输出目录 文件1 文件2
平铺提取并覆盖lessmsi xfo 包.msi 输出目录
平铺提取并防重名lessmsi xfr 包.msi 输出目录
打开图形界面lessmsilessmsi o
查看版本lessmsi v

记住一个原则就够了:x打头的都是提取,l打头的是查看,什么都不带就是图形界面。

十二、高频疑问快答

问:用 lessmsi 提取文件安全吗?它只读取 MSI 内容并复制文件,不执行安装逻辑、不写注册表。不过老规矩,提取出来的文件建议先过一遍杀毒扫描再使用。

问:几个 GB 的大型安装包会不会很慢?lessmsi 采用流式处理,内存占用平稳,大型安装包也能跑。追求速度的话,命令行模式通常比图形界面更轻快。

问:支持哪些 Windows 版本?基于 .NET Framework 4.8 构建,面向微软当前支持周期内的 Windows 系统,Windows 10 及更高版本都能正常使用。

问:只能提取文件吗?还能干嘛?除了提取,还能浏览内部数据库表格、查看摘要信息、把文件列表导出成 CSV,相当于一个多合一的"安装包浏览器"。

十三、写在最后:工具的意义是"少折腾"

回到小周的故事。那个周一的上午,她前后只花了不到十分钟就解决了"看起来要重装整个软件"的大问题。后来她总结说:很多电脑问题之所以让人崩溃,不是因为问题本身难,而是因为缺少一件顺手的小工具。

lessmsi 就是这样的工具。它免费、开源、免安装,既照顾了想点鼠标的新手,也满足了要写脚本的高手。下次当你面对一个 .msi 安装包、却只想要里面的某一个文件时,别再急着点"下一步安装"了——把 lessmsi 拿出来,三分钟,搞定。

【免费下载链接】lessmsiA tool to view and extract the contents of an Windows Installer (.msi) file.项目地址: https://gitcode.com/gh_mirrors/le/lessmsi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询