微软在博文中指出,Windows 11 中通过 MSIX 格式安装的应用,用户界面上的“卸载”操作在系统层面实际先为“注销”(Deregister),通过 RemovePackageAsync 移除软件包与用户的关联;只有当系统确认没有其他程序依赖这些文件时,才会执行真正从磁盘删除的软件包卸载(Destage)。文中对比了 MSI 与 MSIX 的差异,并列出 MSIX 的四个生命周期操作:部署(Stage)、注册(Register)、注销(Deregister)、卸载(Destage),并以共享框架包不会被立即删除为例说明行为细节。
8 月 5 日消息,微软昨日(8 月 4 日)发布博文,指出在 Windows 11 系统中通过 MSIX 格式安装的应用程序,在用户感知中的“卸载”(Uninstall)操作,在系统层面的底层逻辑是“移除”(Remove)。
IT之家查询公开资料,附上 Windows 系统下 MSI 和 MSIX 两种安装格式的区别
- MSI:全称 Microsoft Installer,本质上是一个包含安装指令和文件数据的数据库,由 Windows Installer 服务直接读取并解压覆盖文件。
- MSIX:微软推出的现代应用包格式,整合了 MSI、AppX、App-V 等格式的优点,采用容器化虚拟技术运行应用。
MSI 格式安装的应用程序在卸载操作后,会清理安装文件、安装目录、注册表和 Runtime 相关组件等;而 MSIX 格式安装的应用程序,软件包生命周期由四个基本操作组成:
- 部署(Stage):获取有效载荷并将其安全地放置在磁盘上
- 注册(Register):将软件包与用户关联
- 注销(Deregister):移除用户的软件包关联
- 卸载(Destage):从磁盘中移除软件包有效载荷
在用户操作逻辑中,点击“卸载”按钮来删除某款应用,Windows 11 系统会调用名为 RemovePackageAsync 的 API 方法,来注销(Deregister)应用和用户的关联。只有当系统确定没有其他程序需要这些文件时,才会执行卸载(Destage)操作,也就是真正删除应用的部分。
例如用户卸载了应用程序 A,但同一账户上的应用程序 B 仍然引用同一个共享框架包,即使用户是计算机上的唯一用户,Windows 也不会卸载该框架。