首页
赞助博主
友链
关于
工具
推荐
我的B站主页
我的歌单
我的bgm
井字棋
待办事项
随机cg
Search
1
iOS永久不续签随意装软件,trollstore巨魔商店安装教程
3,284 阅读
2
进入自己原神服务器
1,716 阅读
3
linux云服开原神服务器
1,569 阅读
4
win上开原神服务器
1,089 阅读
5
从零开始的mc联机教程
1,073 阅读
默认分类
原神
MC
iOS
galgame
学习笔记
登录
Search
标签搜索
原神
私服
win
安卓
火神80
累计撰写
10
篇文章
累计收到
12
条评论
首页
栏目
默认分类
原神
MC
iOS
galgame
学习笔记
页面
赞助博主
友链
关于
工具
推荐
我的B站主页
我的歌单
我的bgm
井字棋
待办事项
随机cg
搜索到
1
篇与
的结果
2025-08-14
NSIS和MSI两种常见win软件安装程序的区别
前言废话我不是写了一个视觉小说管理工具ReinaManager么,通过Tauri自动打包出来的有三种文件:可执行文件MSI安装包Setup.exe即NSIS安装包那我就在想,这NSIS和MSI两种安装包有啥区别呢?以前不是开发者的时候,感觉也就是一个长得花哨一些,另一个看起来千篇一律这样的区别罢了,那么成为开发者后我的想法还会和之前一样吗?两者的本质区别从它们两的工作原理来讲:NSIS就像一个脚本,这个脚本可以供开发者高度自定义,安装程序就根据这个开发者定制的脚本来一步一步执行。MSI就像一个数据库,安装程序就像在填表,而这个表没什么可自定义的内容,安装过程可以说是千篇一律的,由Windows Installer管理这张表,可以说是高度的标准化和工程化。选择哪个?对于开发者来说选择 NSIS 还是 MSI,核心的权衡点是:想要多大的自由度?选择 NSIS,就是选择了“完全的自由”。优点 (Pro): 开发者可以通过编写脚本,像写程序一样精确控制安装过程的每一个细节。他们可以设计出独一无二、带有酷炫动画和自定义页面的安装界面。整个安装包可以做得非常小,因为只打包了必要的东西。这就像用乐高积木盖房子,可以天马行空,不受限制。缺点 (Con): 自由也意味着责任。复杂的安装逻辑需要复杂的脚本,很容易出错。最关键的是,卸载程序也需要开发者自己手动编写脚本,如果疏忽了某个文件或注册表项,就会导致“卸载不干净”的流氓行为。选择 MSI,就是选择了“标准化和可靠性”。优点 (Pro): 开发者不用关心具体的执行步骤,而是像填表格一样,声明“有哪些文件”、“要创建哪些快捷方式”。Windows Installer 服务会保证这些事情被稳妥地完成。这种标准化让后续的更新、修复和卸载都非常可靠,是企业环境的最爱。缺点 (Con): 标准化牺牲了灵活性。用 MSI 很难做出个性化的安装界面,通常都是 Windows 经典的那几步。学习使用创建 MSI 的工具(比如 WiX Toolset)也比写 NSIS 脚本要复杂和陡峭。这就像用预制板盖房子,虽然坚固标准,但样式比较单一。对于普通用户而言对于希望有控制权的用户:NSIS 通常能提供更好的体验。开发者可以很轻松地加入“选择安装路径”、“选择安装组件”(比如要不要装桌面快捷方式)等页面。这种自由度正是你想要的。对于 “电脑小白”或普通用户:他们最怕的可能就是未知和复杂。一个陌生的、花里胡哨的安装界面,或者一堆看不懂的选项,可能会让他们感到不安。这时候 MSI 的“死板”反而成了优点。它那千篇一律的、Windows 风格的界面让人感到熟悉和安全。“下一步”、“下一步”、“完成”,操作简单,符合预期,不容易出错。也不能简单地说哪个就一定更好。NSIS 的上限很高(可以做得非常友好和强大),但下限也很低(开发者可能会滥用它的灵活性,捆绑流氓软件或做出很烂的界面)。MSI 则非常稳定,体验永远不会太差,但也永远不会有太多惊喜。在软件更新时会发生什么如果把NSIS比作是一个“操作步骤”的菜谱 📜,那么MSI就像是有一张“最终安装状态”的点菜单 📝,电脑是厨房,Windows Installer服务是厨师。新版本的 NSIS 安装包,就是一份新的菜谱,当需要用新菜谱(新版 NSIS)替换旧菜谱(旧版 NSIS)时,最稳妥的办法是先把旧菜谱做的菜全部扔掉(运行旧版本的卸载程序),然后再按照新菜谱重新做一遍(运行新版本的安装程序)。厨师(Windows Installer 服务)会拿着新旧两张点菜单进行对比,然后发现:“哦,这桌需要加一个菜,或者这道菜需要加一些盐,那我就只要在这张桌子加上一道新菜,或者只需要给这道菜调味一下。”小结一下:NSIS 更新:通常是“先完全卸载,再完全安装” MSI 更新:通常是“差量更新”,只修改有变化的部分总结特性NSIS (Nullsoft Scriptable Install System)MSI (Microsoft Installer)核心原理脚本驱动 (像菜谱,按步骤执行)数据库驱动 (像清单,声明最终状态)灵活性✅ 极高,可完全自定义界面和逻辑❌ 较低,流程和界面都比较标准化标准化❌ 较低,每个安装包都可能不同✅ 极高,由 Windows Installer 服务统一管理最适合谁?想要个性化和轻量化的独立开发者需要可靠部署和统一管理的企业开发者体验简单脚本,上手快,自由度大结构化,学习曲线陡,但更规范管理员体验部署困难,自动化不可靠部署方便,完美支持静默安装和组策略普通用户体验体验可好可坏,取决于开发者体验一致、熟悉、安全
2025年08月14日
55 阅读
0 评论
0 点赞