Windows

Почему вы не можете удалить несколько программ одновременно в Windows?

why-are-you-unable-to-uninstall-multiple-programs-simultaneously-in-windows-00

Предположим, у вас есть небольшая группа программ, которые вы хотите удалить в своей системе Windows, но Windows позволит вам удалить их только по одной за раз. Это почему? Что мешает вам удалить несколько программ одновременно?

Сегодняшняя сессия Вопросов и Ответов приходит к нам благодаря SuperUser — подразделению Stack Exchange, объединенной группой веб-сайтов вопросов и ответов.

Вопрос

Читатель SuperUser Джероен Боллен хочет знать, почему человек не может удалить несколько программ одновременно в Windows:

Почему Windows удерживает вас от удаления или удаления нескольких программ одновременно? В чем причина этого? Это испортит внутреннюю систему?

Я не хочу удалять несколько программ одновременно, я просто ищу причину (ы), почему это не было бы вариантом.

Что мешает людям удалять несколько программ одновременно в Windows?

Ответ

Ответы за это предоставили разработчики SuperUser Ultrasawblade и techie007. Прежде всего, ультразвуковой клинок:

Если вы прочитали что-нибудь о том, как работает система установщика Windows, очевидно, что они применили некоторые идеи из транзакционных баз данных для установки и обслуживания программ, не говоря уже о том, что сами MSI- файлы являются базой данных.

При проектировании любой базы данных всегда возникает вопрос: хотите ли вы скорость или точность / безопасность? Принимая во внимание, что установщики могут изменять конфигурацию системы и что случайный сбой может сделать систему неработоспособной, безопасность имеет приоритет над скоростью.

Одна из причин, по которой установщики .msi работают так медленно, заключается в том, что для каждого файла создаются откатные файлы и т. Д., Которые будут изменены, а затем удалены, что позволит «откатить» любые изменения, если что-то пойдет не так в середине процесса. (например, сбой питания или сбой системы).

Теперь я считаю, что сам движок MSI обеспечивает установку, изменение или удаление только одной программы за раз. Если вы попытаетесь запустить MSI- файл, когда другой, например, удаляется, он либо не запустится, либо будет ожидать завершения текущего процесса удаления. Установщики, не являющиеся MSI, могут вести себя не так, поскольку они не используют механизм MSI. Но из-за этого решения по проектированию безопасности, вероятно, именно поэтому appwiz.cpl настаивает на том, чтобы позволить вызывать только один деинсталлятор одновременно.

CCleaner позволяет запускать деинсталляторы, не дожидаясь завершения ранее запущенных, но инсталляторы MSI, скорее всего, все равно не будут работать параллельно из-за вышеизложенного.

Далее следует ответ от techie007:

Это действительно относится только к программам, которые используют систему установщика Windows .

Если программа использует свои собственные (не) установочные системы, то ничто не помешает вам запустить другой деинсталлятор одновременно.

Установщик Windows ограничивает количество экземпляров, чтобы избежать конфликтов, создаваемых несколькими программами, когда они изменяют общесистемные (часто общие) настройки и файлы.

Большинство деинсталляторов отслеживают то, что они изменяют, чтобы они могли успешно откатиться в случае сбоя. Если кто-то не знает обо всех изменениях, которые были сделаны (другими деинсталляторами), то он может на самом деле сделать вещи ДРУГИМИ, если попытается откатить неудачную установку.

Система установщика Windows была создана с целью стать единой системой, которую могут использовать все разработчики приложений (в Windows), чтобы избежать подобных проблем.


Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .

Похожие посты
Windows

Драйверы для Windows 10

Windows

Лучшие приложения для фотографии на вашем Windows Phone

Windows

Команды командной строки для панели управления апплетами

Windows

Официальное приложение SmugMug теперь доступно для Windows Phone