26Aug
Tarkime, kad turite mažą programėlių, kuriuos norite pašalinti iš "Windows" sistemos, grupę, tačiau "Windows" leis juos pašalinti tik vieną kartą.Kodėl tai? Kas trukdo jums vienu metu pašalinti kelias programas?
Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.
Klausimas
SuperUser skaitytuvas Jeroen Bollen nori sužinoti, kodėl asmuo negali vienu metu pašalinti kelias programas sistemoje Windows:
Kodėl Windows neleidžia jums vienu metu pašalinti arba pašalinti kelias programas? Kuo tai grindžiamas? Ar tai suklaidins vidinę sistemą?
Aš nenoriu vienu metu pašalinti kelių programų, aš tiesiog ieško priežasties( -ų), kodėl tai nebūtų pasirinkimas.
Kas tai neleidžia žmonėms vienu metu vienu metu pašalinti kelias programas sistemoje "Windows"?
Atsakymas
SuperUser autoriai ultrasawblade ir techie007 turi mums atsakymą.Pirmasis, ultragarsinis:
Jei perskaitysite informaciją apie tai, kaip veikia "Windows" diegimo programa, akivaizdu, kad jie taikė keletą idėjų iš sandorių duomenų bazių, kad įdiegtų ir prižiūrėtų programas, taip pat neminint, kad
. msi failai patys yra duomenų bazė.Visada yra kuriant bet kokią duomenų bazę klausimas - ar norite, kad greitis ar tikslumas / saugumas? Atsižvelgiant į tai, kad montuotojai gali keisti sistemos konfigūraciją ir, kad nesklandumas gali padaryti sistemą neveikiančią, saugumui buvo suteikta pirmenybė, palyginti su greičiu.
Viena iš priežasčių, kodėl . msi diegimo programos yra tokios lėtos, yra tai, kad kiekvienam failui ir tt atliekami atvirkštinio failo failai ir tt, kurie bus pakeisti, tada ištrinami vėliau, kad bet kokie pakeitimai būtų "grąžinti atgal", jeidalykų vidurio( pvz., elektros energijos tiekimo nutraukimo ar sistemos avarijos).
Dabar manau, kad MSI variklis pats vienu metu vykdo vienos programos įdiegimą, keitimą ar šalinimą.Jei bandote paleisti . msi failą, kol kitas pašalina, pavyzdžiui, jis arba nebus paleistas, arba laukia, kol baigsis šiuo metu vykdomas pašalinimo procesas. Ne "MSI" montuotojai gali neveikti tokiu būdu, nes jie nenaudoja "MSI" variklio. Tačiau dėl šio saugumo projektavimo sprendimo tai greičiausiai yra priežastis, kodėl appwiz.cpl reikalauja iš karto sušaukti tik vieną "deinstaller".
CCleaner leidžia paleisti deinstalatorius be laukimo, kol baigsis anksčiau buvusieji, tačiau MSI diegimo programos, greičiausiai, vis tiek neveikia lygiagrečiai.
Vykdydami techie007 atsakymą:
Tai tikrai taikoma programoms, kuriose naudojama "Windows Installer" sistema.
Jei programa naudoja savo( un) montuotojo sistemas, tai niekas neužkerta kelio tuo pačiu metu paleisti dar vieną šalinimo programą.
"Windows Installer" apriboja atvejų skaičių, kad būtų išvengta konfliktų, kai kelias programas keičia visoje sistemoje( dažnai bendrai naudojamiems) nustatymams ir failams.
Dauguma išinstaliuotojų seka, ką jie keičia, todėl jie gali sėkmingai grįžti, jei yra gedimas. Jei niekas nežino apie visus pakeitimus( kuriuos atlieka kiti "deinstalleriai"), tai gali iš tikrųjų padaryti viską, jei bandoma sugrąžinti nepavykusį diegimą.
"Windows Installer" sistema buvo sukurta siekiant sukurti vieningą sistemą, kurią galėtų naudoti visi programų kūrėjai( sistemoje "Windows"), kad būtų išvengta tokių problemų.
Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.