Начална » как да » Защо не можете да деинсталирате няколко програми едновременно в Windows?

    Защо не можете да деинсталирате няколко програми едновременно в Windows?

    Да предположим, че имате малка орда от програми, които искате да деинсталирате във вашата Windows система, но Windows само ще ви позволи да ги деинсталирате поотделно. Защо така? Какво ви пречи да деинсталирате няколко програми едновременно?

    Днешната сесия за въпроси и отговори идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общността уеб сайтове за въпроси и отговори.

    Въпроса

    Читателят на суперпотребителя Йерун Болен иска да знае защо човек не може да деинсталира няколко програми едновременно в Windows:

    Защо Windows ви предпазва от деинсталиране или премахване на няколко програми едновременно? Каква е причината за това? Ще обърка ли вътрешна система?

    Аз не искам да деинсталирате няколко програми едновременно, просто търся причината (ите) защо не е опция.

    Какво е това, което спира хората да деинсталират няколко програми едновременно в Windows?

    Отговорът

    SuperUser сътрудниците ultrasawblade и techie007 имат отговор за нас. Първо нагоре, ултразвук:

    Ако прочетете нещо за това как работи системата за инсталиране на Windows, очевидно е, че те са приложили някои идеи от транзакционни бази данни за инсталиране и поддръжка на програмата, да не говорим, че .MSI самите файлове са база данни.

    Винаги има въпрос при проектирането на всяка база данни - искате ли скорост или точност / безопасност? Като се има предвид, че инсталаторите могат да променят конфигурацията на системата и че злополука може да направи системата неоперативна, на безопасността е даден приоритет над скоростта.

    Една от причините за това .MSI инсталаторите са толкова бавни, защото файловете за възстановяване се правят за всеки файл и т.н., които ще бъдат модифицирани, а след това изтрити, което позволява всякакви промени да бъдат „премахнати“, ако нещо се обърка по средата на неща (като например прекъсване на захранването или срив в системата).

    Сега смятам, че самият двигател на MSI налага инсталирането, модифицирането или премахването само на една програма. Ако се опитате да стартирате .MSI файл, докато друг деинсталира например, той или няма да се изпълни, или ще изчака завършването на текущия процес на деинсталиране. Инсталаторите, които не са от MSI, може да не се държат по този начин, тъй като не използват MSI. Но заради това решение за дизайн на безопасността това вероятно е причината appwiz.cpl настоява само да се извика наведнъж само един деинсталатор.

    CCleaner ви позволява да стартирате деинсталиращите програми, без да чакате да завършат, но инсталаторите на MSI най-вероятно все още няма да работят паралелно поради горното..

    Следван от отговора от techie007:

    Това важи само за програми, които използват системата на Windows Installer.

    Ако дадена програма използва свои собствени (не) инсталационни системи, няма нищо, което да ви попречи да работите с друга деинсталираща програма едновременно.

    Инсталаторът на Windows ограничава броя на случаите, за да избегне конфликти, които се правят от няколко програми, докато се променят системните настройки (и често споделяни) и файлове.

    Повечето деинсталатори проследяват какво се променят, за да могат да се върнат успешно, ако има неуспех. Ако някой не е наясно с всички направени промени (от други деинсталатори), то действително може да влоши нещата, ако се опита да върне неуспешната инсталация.

    Системата на Windows Installer е създадена с цел да бъде унифицирана система за всички разработчици на приложения, които да използват (в Windows), за да помогнат да се избегнат подобни проблеми.


    Имате ли какво да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.