Windows Installer

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 29. september 2018; checks kræver 18 redigeringer .
Windows Installer

Type Microsoft Windows-komponent [d] oginstallationsprogram
Udvikler Microsoft
Operativ system Windows
Hardware platform Microsoft Windows
nyeste version 5.0 [1] ( 22. juli 2009 )
Læsbare filformater MSI , Windows Setup Information File [d] og Windows Setup inf_loc fil [d]
Licens Microsoft brugeraftale
Internet side docs.microsoft.com/… (  engelsk)

Windows Installer ( Windows Installer , kodenavn - Darwin [2] [3] ) er et undersystem af Microsoft Windows , der giver installation af programmer ( installationsprogram ). Det er en komponent i Windows siden Windows 2000 ; kan installeres på tidligere versioner af Windows. Al information, der er nødvendig for installationen (nogle gange sammen med de filer, der skal installeres) er indeholdt i installationspakker (installationspakker) med filtypenavnet .msi [4] .

Historie

Windows Installer blev udviklet i 1995-1998 og hed oprindeligt kodenavnet Darwin . Tidlige versioner blev kaldt Microsoft Installer , derfor er standardinstallationspakkens filtypenavn .msi . [5]

Den første version af Installer blev udgivet i begyndelsen af ​​1999 som et installationsprogram til Microsoft Office  2000. I slutningen af ​​det år blev Installer en del af Windows 2000 . Microsoft opfordrede udviklere til at skifte til det nye installationsprogram på alle mulige måder, herunder i listen over krav til programmer, der ønsker at modtage det såkaldte Windows 2000-logo, kravet om at installere ved hjælp af Windows Installer.

Windows Installer viste sig at være et væsentligt skridt fremad i forhold til det tidligere Microsoft-installationsprogram - Setup API (ACME Setup): det introducerede GUI- funktioner , understøttelse af afinstallation og rollback til enhver tid under installationen (inklusive rollback under afinstallation), korrekt arbejde med adgangsrettigheder i Windows og andre funktioner, hvilket gør det til et stærkt alternativ til forskellige installationspakker på markedet.

Fremtidige opdateringer vil introducere .MSIX, som vil være en slags hybrid af . APPX og .MSI, som giver dig mulighed for at installere UWP-applikationer i systemet (i øjeblikket er dette kun muligt direkte gennem Microsoft Store)

Logisk struktur af pakken

En installationspakke beskriver installationen af ​​et produkt og har sin egen GUID . Et produkt består af komponenter (som også har deres egne GUID'er) grupperet i funktioner .

Komponent (komponent) - den mindste udelelige installationsenhed, som er en gruppe af filer, registreringsværdier, oprettede mapper og andre elementer, forenet med et fælles navn (komponentnavn) og enten installeret sammen eller ikke installeret. Komponenterne er skjult for slutbrugeren. Hver komponent har en nøglesti (nøglesti) - for eksempel navnet på dens hovedfil - som bestemmer tilstedeværelsen af ​​denne komponent på brugerens computer.

Opportunity (funktion; i den russiske version af Windows er dette ord oversat som "komponent", hvilket introducerer forvirring) er en hierarkisk gruppe af komponenter og/eller andre funktioner. Når en dialogboks til at vælge de installerede dele af programmet vises under installationen, kontrollerer brugeren valget af funktioner . Valg af en mulighed for at installere indebærer installation af alle de komponenter, der er inkluderet i den [6] .

Fysisk struktur af pakken

En .msi -fil er et sammensat OLE- dokument ( OLE -sammensat dokument - Microsoft Word , Excel , osv. dokumenter gemmes i samme containerformat), som indeholder en lille relationsdatabase  - et sæt af flere dusin indbyrdes forbundne tabeller, der indeholder forskellige oplysninger om produktet og installationsprocessen. I dette tilfælde er alle strengdata i databasen gemt sammen i en separat dokumentstrøm, og i databasens tabeller er der links til dem; dermed undgå duplikering af linjer, hvilket reducerer størrelsen af ​​databasen markant.

Ud over basen sørger strukturen for .msi-filen for placering af brugerscripts og hjælpe - DLL'er , hvis nogen, der kræves til installationen, såvel som selve de installerbare filer pakket i .cab -format . Filer kan også placeres separat fra pakken, i pakket eller udpakket form (bevarer mappestrukturen).

Installationsproces

Installationsprocessen består af flere faser - informationsindsamling, udførelse (selve installationen) og eventuelt rollback (ved fejl eller annullering af installationen fra brugerens side).

Handlinger

Hvert trin i installationen består af en sekvens af handlinger (handlinger), registreret i databasen. Handlinger tildeles numre, der bestemmer den rækkefølge, de udføres i, og nogle gange under hvilke betingelser handlinger udføres eller ikke udføres.

De fleste trin er standardtrin til en typisk informationsindsamling og installationsproces. Alle disse handlinger er dokumenterede, udover dem kan brugeren definere sine egne handlinger (tilpassede handlinger).

Brugerdefinerede handlinger kan enten skrives i et af de scriptsprog, der er indbygget i operativsystemet ( JScript eller VBScript samt Eclipse, et sidesprog fra C++), eller placeres i en specielt oprettet DLL (skrevet på sprog såsom C , C++ osv.). Filerne med disse handlinger placeres inde i .msi -filen og udpakkes derfra i begyndelsen af ​​installationskørslen. Disse DLL'er udpakkes til mappen Windows\Installer og får tilfældige navne, såsom MSIF65E.tmp.

Indsamling af information

Under informationsindsamlingsfasen indsamler Windows Installer instruktioner (enten gennem brugerinteraktion eller programmatisk) for at installere eller fjerne en eller flere funktioner inkluderet i produktet. Disse instruktioner danner derefter et internt script baseret på databasen, der beskriver det efterfølgende udførelsestrin.

Denne fase kaldes også den øjeblikkelige tilstand (umiddelbar tilstand).

Udførelse

Ved begyndelsen af ​​dette trin har installationsprogrammet genereret et internt script designet til at blive udført uden brugerindblanding. Dette script køres af installationsprogrammet i privilegeret NT-tjenestetilstand (specifikt under LocalSystem-kontoen ). Den privilegerede tilstand er påkrævet på grund af det faktum, at installationen kunne startes af en bruger, der ikke har de nødvendige rettigheder til at ændre systemparametre og filer (selvom han fik ret til at installere programmet).

Denne fase kaldes nogle gange udskudt tilstand.

Rul tilbage

Hvis nogen af ​​de handlinger, der er defineret i scriptet, mislykkes, eller hvis en igangværende installation annulleres af brugeren, rulles alle handlinger, der er udført indtil det tidspunkt, tilbage , hvilket returnerer systemet til dets præinstallationstilstand. Rollback sikres ved tilstedeværelsen for hver handling, der foretager en ændring i systemet, det modsatte af det. Når man introducerer ikke-standardhandlinger i en pakke, skal programmøren også skabe inverse til dem, for at tilbagerulningen kan fungere korrekt [7] .

Andre funktioner

Annoncering og installation-on-demand

Windows Installer reklamerer muligvis for produktet i stedet for at installere det [8] . Produktet vises for brugeren, men det vil faktisk ikke blive installeret, før det lanceres for første gang (ved hjælp af en genvej i startmenuen ). Installationspakken kan annonceres af en administrator, der bruger Windows Group Policy eller en anden kompileringsmekanisme, eller ved at køre msiexec eksekverbar med /jm (for pr-enhed-annoncer) eller /ju (for pr-bruger-annoncer). Nogle MSI-pakker, der er oprettet med InstallShield , kan forstyrre brugen af ​​disse og andre indbyggede MSI-funktioner.

Brugeren skal have administratorrettigheder for at fuldføre den annoncerede installation.

Installation efter behov

I lighed med at reklamere for et produkt, installerer install on demand en funktion, så snart brugeren forsøger at bruge den [9] .

Noter

  1. Frigivne versioner af Windows Installer . Microsoft Developer Network . Microsoft . Hentet 22. februar 2015. Arkiveret fra originalen 13. december 2014.
  2. når opsætningen ikke kun er xcopy: The story of Orca . Arkiveret fra originalen den 23. december 2008.
  3. Windows Installer, .NET Framework, The Bootstrapper og dig – Chris Smiths helt unikke visning . Hentet 1. juli 2018. Arkiveret fra originalen 5. februar 2019.
  4. Filtypenavn .MSI detaljer . Hentet 1. juli 2018. Arkiveret fra originalen 11. august 2021.
  5. Rob Mensching. Inde i MSI-filformatet. . Hentet 11. april 2006. Arkiveret fra originalen 15. januar 2009.
  6. Windows Installer-komponenter | Microsoft docs . Hentet 1. juli 2018. Arkiveret fra originalen 1. juli 2018.
  7. Tilbagestillingsinstallation | Microsoft docs . Hentet 1. juli 2018. Arkiveret fra originalen 1. juli 2018.
  8. Annonce | Microsoft docs . Hentet 1. juli 2018. Arkiveret fra originalen 1. juli 2018.
  9. Installation-on-demand | Microsoft docs . Hentet 1. juli 2018. Arkiveret fra originalen 1. juli 2018.

Links