windows10卸载程序_为什么在Windows中无法同时卸载多个程序?
windows10卸载程序
Suppose you have a small horde of programs you want to uninstall on your Windows system, but Windows will only let you uninstall them one at a time. Why is that? What is stopping you from uninstalling multiple programs simultaneously?
假设您有少量要在Windows系统上卸载的程序,但是Windows一次只能卸载一个。 这是为什么? 是什么使您无法同时卸载多个程序?
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
今天的“问答”环节由SuperUser提供,它是Stack Exchange的一个分支,该社区是由社区驱动的Q&A网站分组。
问题 (The Question)
SuperUser reader Jeroen Bollen wants to know why a person is unable to uninstall multiple programs simultaneously in Windows:
超级用户阅读器Jeroen Bollen想知道为什么一个人无法在Windows中同时卸载多个程序:
Why does Windows keep you from uninstalling or removing multiple programs simultaneously? What is the reasoning behind this? Will it mess up an internal system?
Windows为什么阻止您同时卸载或删除多个程序? 这背后的原因是什么? 会搞乱内部系统吗?
I do not want to uninstall multiple programs simultaneously, I am simply looking for the reason(s) why it would not be an option.
我不想同时卸载多个程序,我只是在寻找无法选择的原因。
What is it that stops people from uninstalling multiple programs simultaneously in Windows?
是什么使人们无法在Windows中同时卸载多个程序?
答案 (The Answer)
SuperUser contributors ultrasawblade and techie007 have the answer for us. First up, ultrasawblade:
超级用户贡献者ultrasawblade和techie007为我们找到了答案。 首先,使用超锯片:
If you read anything about how the Windows installer system works, it is obvious that they applied some ideas from transactional databases to program installation and maintenance, not to mention that .msi files themselves are a database.
如果您阅读有关Windows安装程序系统工作原理的任何信息,很明显,他们将事务数据库中的某些想法应用到了程序的安装和维护中,更不用说.msi文件本身就是数据库了。
There is always the question in designing any database – do you want speed or accuracy/safety? Given that installers can modify a system’s configuration and that a mishap could render the system inoperable, safety has been given a priority over speed.
设计任何数据库时始终存在问题–您想要速度还是准确性/安全性? 考虑到安装人员可以修改系统的配置,并且事故可能会使系统无法运行,因此安全性要比速度优先。
One of the reasons why .msi installers are so slow is because rollback files are made for each file, etc. that will be modified, then deleted afterwards, allowing any changes to be “rolled back” if something goes wrong in the middle of things (such as a power outage or system crash).
.msi安装程序如此之慢的原因之一是因为为每个文件等创建了回滚文件,这些文件将被修改,然后被删除,如果中间出现问题,则可以“回滚”任何更改。 (例如停电或系统崩溃)。
Now, I believe the MSI engine itself enforces installing, modifying, or removing only one program at a time. If you try to run an .msi file while another is uninstalling for example, it will either not run, or will wait for the currently running uninstall process to finish. Non-MSI installers may not behave this way since they do not use the MSI engine. But because of this safety design decision, this is probably why appwiz.cpl insists on letting only one uninstaller be called at once.
现在,我相信MSI引擎本身一次只能强制安装,修改或删除一个程序。 例如,如果尝试在卸载另一个.msi文件时运行它,则该文件将不会运行,或者将等待当前正在运行的卸载过程完成。 非MSI安装程序可能不以这种方式运行,因为它们不使用MSI引擎。 但是由于这个安全设计决定,这可能就是appwiz.cpl坚持只一次调用一个卸载程序的原因。
CCleaner allows you to kick off uninstallers without waiting for previously running ones to finish, but MSI installers will likely still not work in parallel due to the above.
CCleaner允许您启动卸载程序,而无需等待先前运行的卸载程序完成,但是由于上述原因,MSI安装程序仍可能无法并行工作。
Followed by the answer from techie007:
紧接着来自techie007的回答:
This really only applies to programs that use the Windows Installer system.
这实际上仅适用于使用Windows Installer系统的程序 。
If a program uses their own (un)installer systems, then there is nothing stopping you from running another uninstaller at the same time.
如果程序使用他们自己的(卸载)安装程序系统,那么没有什么可以阻止您同时运行另一个卸载程序。
The Windows Installer limits the number of instances to avoid conflicts being made by multiple programs while they are changing system-wide (often shared) settings and files.
Windows Installer限制了实例数量,以避免多个程序在更改系统范围(通常是共享的)设置和文件时发生冲突。
Most uninstallers track what they are changing so they can roll back successfully if there is a failure. If one is not aware of all the changes being made (by other uninstallers), then it may actually make things WORSE if it tries to roll back a failed install.
大多数卸载程序会跟踪其更改,因此如果出现故障,它们可以成功回滚。 如果一个人不知道(由其他卸载程序进行的)所有更改,则如果它尝试回滚失败的安装,则实际上可能会使情况变得更糟。
The Windows Installer system was created with the intention of being a unified system for all application developers to use (on Windows) in order to help avoid problems like these.
Windows Installer系统的创建旨在成为一个统一的系统,供所有应用程序开发人员使用(在Windows上),以帮助避免此类问题。
Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.
有什么补充说明吗? 在评论中听起来不错。 是否想从其他精通Stack Exchange的用户那里获得更多答案? 在此处查看完整的讨论线程 。
windows10卸载程序