Jer*_*oen 99 windows uninstall windows-7
为什么 Windows 不允许您一次卸载或删除多个程序?这背后的原因是什么?它会搞乱内部系统吗?
我不是在寻找如何一次卸载多个程序,我只是在寻找它不是一种选择的原因。
Law*_*ceC 101
如果您阅读了有关 Windows 安装程序系统如何工作的任何内容,很明显他们将事务数据库中的一些想法应用于程序安装和维护,更不用说.msi文件本身就是一个数据库。
在设计任何数据库时总是有一个问题——你想要速度还是准确性/安全性?鉴于安装人员可以修改系统配置,并且事故可能导致系统无法运行,因此安全优先于速度。.msi安装程序如此缓慢的原因之一是因为为每个文件等制作了回滚文件,这些文件将被修改,然后被删除 - 如果中间出现问题,允许“回滚”任何更改(例如停电或系统崩溃)。
现在,我相信 MSI 引擎本身一次只强制安装、修改或删除一个程序 -.msi例如,如果您尝试运行另一个程序正在卸载,它要么不会运行,要么将等待当前正在运行的卸载完成。非 MSI 安装程序可能不会以这种方式运行 - 因为他们不使用 MSI 引擎。但由于这个安全设计决定,这可能就是为什么appwiz.cpl坚持只让一次卸载程序被调用的原因。
CCleaner 允许您启动卸载程序,而无需等待之前运行的卸载程序完成。由于上述原因,MSI 安装程序可能仍无法并行工作。
Ƭᴇc*_*007 19
这仅适用于使用Windows Installer系统的程序。
如果一个程序使用它们自己的(卸载)安装程序系统,那么没有什么可以阻止您同时运行另一个卸载程序。
Windows Installer 限制实例数量,以避免多个程序在更改系统范围(通常共享)设置和文件时发生冲突。
大多数卸载程序会跟踪他们正在更改的内容,以便在出现故障时可以成功回滚。如果人们不知道(由其他卸载程序)所做的所有更改,那么如果它尝试回滚失败的安装,实际上可能会使事情变得更糟。
创建 Windows Installer 系统的目的是成为所有应用程序开发人员(在 Windows 上)使用的统一系统,以帮助避免此类问题。
卸载任务经常修改由多个程序共享的文件,或系统文件\注册表(需要管理权限来执行此操作的部分原因)。如果同时运行多个卸载任务,它们可能会发生冲突。如果您曾经遇到过“DLL 地狱”,那也是一样的。其他程序或 Windows 本身可能会处于不一致的状态。
| 归档时间: |
|
| 查看次数: |
25769 次 |
| 最近记录: |