Windows Installer

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 september 2018; kontroller kräver 18 redigeringar .
Windows Installer

Sorts Microsoft Windows-komponent [d] ochinstallationsprogram
Utvecklaren Microsoft
Operativ system Windows
Hårdvaruplattform Microsoft Windows
senaste versionen 5.0 [1] ( 22 juli 2009 )
Läsbara filformat MSI , Windows Setup Information File [d] och Windows Setup inf_loc fil [d]
Licens Microsofts användaravtal
Hemsida docs.microsoft.com/… (  engelska)

Windows Installer ( Windows Installer , kodnamn - Darwin [2] [3] ) är ett undersystem till Microsoft Windows som tillhandahåller installation av program ( installationsprogram ). Det är en komponent i Windows sedan Windows 2000 ; kan installeras på tidigare versioner av Windows. All information som behövs för installationen (ibland tillsammans med filerna som ska installeras) finns i installationspaket (installationspaket) med tillägget .msi [4] .

Historik

Windows Installer utvecklades 1995-1998 och fick ursprungligen kodnamnet Darwin . Tidiga versioner kallades Microsoft Installer , därför är standardfiltillägget för installationspaketet .msi . [5]

Den första versionen av Installer släpptes i början av 1999 som ett installationsprogram för Microsoft Office  2000. I slutet av det året blev Installer en del av Windows 2000 . Microsoft uppmuntrade utvecklare att byta till det nya installationsprogrammet på alla möjliga sätt, inklusive i listan över krav för program som vill få den så kallade Windows 2000-logotypen, kravet att installera med Windows Installer.

Windows Installer visade sig vara ett betydande steg framåt i förhållande till det tidigare Microsoft-installationsprogrammet - Setup API (ACME Setup): det introducerade GUI- funktioner , stöd för avinstallation och återställning när som helst under installationen (inklusive återställning under avinstallation), korrekt arbete med åtkomsträttigheter i Windows och andra funktioner, vilket gör det till ett starkt alternativ till olika installationspaket på marknaden.

Framtida uppdateringar kommer att introducera .MSIX, som kommer att vara en sorts hybrid av . APPX och .MSI, som låter dig installera UWP-applikationer i systemet (för närvarande är detta endast möjligt direkt via Microsoft Store)

Logisk struktur för paketet

Ett installationspaket beskriver installationen av en produkt och har sin egen GUID . En produkt består av komponenter (som också har sina egna GUID) grupperade i funktioner .

Komponent (komponent) - den minsta odelbara installationsenheten, som är en grupp av filer, registervärden, skapade mappar och andra element, förenade med ett gemensamt namn (komponentnamn) och antingen installerade tillsammans eller inte installerade. Komponenterna är dolda för slutanvändaren. Varje komponent har en nyckelsökväg (nyckelsökväg) - till exempel namnet på dess huvudfil - som bestämmer närvaron av denna komponent på användarens dator.

Möjlighet (funktion; i den ryska versionen av Windows är detta ord översatt som "komponent", vilket introducerar förvirring) är en hierarkisk grupp av komponenter och / eller andra funktioner. När en dialogruta för att välja de installerade delarna av programmet visas under installationen, styr användaren valet av funktioner . Att välja ett alternativ att installera innebär att alla komponenter som ingår i det installeras [6] .

Fysisk struktur för paketet

En .msi -fil är ett OLE-sammansatt dokument ( OLE- sammansatta dokument - Microsoft Word , Excel , etc.-dokument lagras i samma containerformat), som innehåller en liten relationsdatabas  - en uppsättning av flera dussin sammankopplade tabeller som innehåller olika information om produkten och installationsprocessen. I det här fallet lagras all strängdata i databasen tillsammans i en separat dokumentström, och i databasens tabeller finns länkar till dem; på så sätt undviker duplicering av rader, vilket avsevärt minskar storleken på databasen.

Förutom basen tillhandahåller strukturen för .msi-filen placering av användarskript och eventuella extra DLL -filer som krävs för installationen, såväl som själva de installerade filerna, paketerade i .cab- format . Filer kan också placeras separat från paketet, i packad eller uppackad form (med bibehållen katalogstruktur).

Installationsprocess

Installationsprocessen består av flera steg - informationsinsamling, exekvering (den faktiska installationen), och eventuellt återställning (vid ett fel eller avbrytande av installationen av användaren).

Åtgärder

Varje steg i installationen består av en sekvens av åtgärder (åtgärder), registrerade i databasen. Åtgärder tilldelas nummer som bestämmer i vilken ordning de utförs, och ibland under vilka villkor åtgärder utförs eller inte utförs.

De flesta av stegen är standardsteg för en typisk informationsinsamling och installationsprocess. Alla dessa åtgärder är dokumenterade, utöver dem kan användaren definiera sina egna åtgärder (anpassade åtgärder).

Användardefinierade åtgärder kan antingen skrivas i ett av de skriptspråk som är inbyggda i operativsystemet ( JScript eller VBScript samt Eclipse, ett sidospråk från C++), eller placeras i en speciellt skapad DLL (skriven på språk såsom C , C++ etc.). Filerna med dessa åtgärder placeras inuti .msi -filen och extraheras därifrån i början av installationskörningen. Dessa DLL-filer extraheras till katalogen Windows\Installer och ges slumpmässiga namn, som MSIF65E.tmp.

Samla information

Under informationsinsamlingsfasen samlar Windows Installer in instruktioner (antingen genom användarinteraktion eller programmatiskt) för att installera eller ta bort en eller flera funktioner som ingår i produkten. Dessa instruktioner bildar sedan ett internt skript baserat på databasen, som beskriver det efterföljande exekveringssteget.

Detta stadium kallas också för omedelbart läge (omedelbart läge).

Utförande

I början av detta steg har installationsprogrammet genererat ett internt skript som är utformat för att köras utan användaringripande. Det här skriptet körs av installationsprogrammet i privilegierat NT-tjänstläge (särskilt under LocalSystem-kontot ). Det privilegierade läget krävs på grund av att installationen kan startas av en användare som inte har de nödvändiga rättigheterna att ändra systemparametrar och filer (även om han fick rätten att installera programmet).

Detta stadium kallas ibland förskjutet läge.

Återställ

Om någon av de åtgärder som definieras i skriptet misslyckas, eller om en pågående installation avbryts av användaren, återställs alla åtgärder som utförts fram till den punkten , vilket återställer systemet till dess förinstallationstillstånd. Återställning säkerställs av närvaron för varje åtgärd som gör en förändring i systemet, det omvända till det. När man introducerar icke-standardiserade åtgärder i ett paket måste programmeraren också skapa inverser till dem för att återställningen ska fungera korrekt [7] .

Andra funktioner

Meddelande och installation på begäran

Windows Installer kan marknadsföra produkten istället för att installera den [8] . Produkten kommer att visas för användaren, men den kommer faktiskt inte att installeras förrän den lanseras för första gången (med en genväg i startmenyn ). Installationspaketet kan annonseras av en administratör som använder Windows gruppolicy eller annan kompileringsmekanism, eller genom att köra msiexec körbara med /jm (för annonser per enhet) eller /ju (för annonser per användare). Vissa MSI-paket skapade med InstallShield kan störa användningen av dessa och andra inbyggda MSI-funktioner.

Användaren måste ha administratörsrättigheter för att slutföra den annonserade installationen.

Installation på begäran

På samma sätt som att annonsera för en produkt installerar installation on demand en funktion så snart användaren försöker använda den [9] .

Anteckningar

  1. Utgivna versioner av Windows Installer . Microsofts utvecklarnätverk . Microsoft . Hämtad 22 februari 2015. Arkiverad från originalet 13 december 2014.
  2. när installationen inte bara är xcopy: The story of Orca . Arkiverad från originalet den 23 december 2008.
  3. Windows Installer, .NET Framework, Bootstrapper och du – Chris Smiths helt unika vy . Hämtad 1 juli 2018. Arkiverad från originalet 5 februari 2019.
  4. Detaljer om filtillägget .MSI . Hämtad 1 juli 2018. Arkiverad från originalet 11 augusti 2021.
  5. Rob Mensching. Inuti MSI-filformatet. . Hämtad 11 april 2006. Arkiverad från originalet 15 januari 2009.
  6. Windows Installer-komponenter | Microsoft docs . Hämtad 1 juli 2018. Arkiverad från originalet 1 juli 2018.
  7. Återställningsinstallation | Microsoft docs . Hämtad 1 juli 2018. Arkiverad från originalet 1 juli 2018.
  8. Annons | Microsoft docs . Hämtad 1 juli 2018. Arkiverad från originalet 1 juli 2018.
  9. Installation-on-Demand | Microsoft docs . Hämtad 1 juli 2018. Arkiverad från originalet 1 juli 2018.

Länkar