Hva er MANIFEST-filformatet?
En .manifest-fil er et XML-dokument som brukes av operativsystemet Windows for å gi metadata om applikasjoner, informasjon om binding av samlinger (assemblies) og sikkerhetskonfigurasjon. Den inneholder strukturerte data i ren tekst som beskriver en kjørbar fil eller en installasjonspakke - inkludert nødvendige privilegier, avhengige samlinger, filtyper og kjøretidsparametere.
Windows bruker .manifest-filer i to hovedroller. Den første er Side-by-Side (SxS) assembly-binding, introdusert med Windows XP: manifestet forteller Windows hvilken versjon av delte biblioteker (som Common Controls DLL) en applikasjon er avhengig av, noe som forhindrer «DLL Hell»-konflikter der flere programmer krasjer over delte komponenter. Et manifest kan også aktivere motoren for visuelle stiler - noe som muliggjør tema-basert utseende på kontroller - uten å endre applikasjonens kjernefunksjonalitet eller tilgjengelige funksjoner.
Den andre hovedrollen, introdusert i Windows Vista, er å deklarere et UAC-privilegienivå (User Account Control). Et manifest som spesifiserer requireAdministrator eller asInvoker forteller Windows hvilket rettighetsnivå som skal etterspørres når brukeren starter programmet.
Filnavnet .manifest samsvarer vanligvis med den kjørbare filen den følger med, med .manifest lagt til - for eksempel heter manifestet for notepad.exe notepad.exe.manifest og ligger i samme mappe. Alternativt kan manifestet kompileres direkte inn i .EXE eller .DLL som en innebygd Win32-ressurs (ressurstype RT_MANIFEST), som er den foretrukne metoden for moderne applikasjoner.
.manifest-filer blir også ofte kompilert til CDF-MS-filer, noe som gir det underliggende programmet raskere tilgang til applikasjonsparametere under kjøring.
Sikkerhet og trygghet
RISIKO: LOWEn .manifest er ren XML-tekst - den kan ikke kjøres, så det er trygt å åpne en for å lese den. Redigering er den reelle risikoen: endring av et programs manifest (spesielt UAC-nivå eller assembly-avhengigheter) kan ødelegge oppstarten eller forårsake feilen «side-by-side configuration is incorrect», så ta sikkerhetskopi av originalen først og rediger kun hvis du forstår innholdet. Ikke slett en .exe.manifest som ligger ved siden av et program - noen apper vil ikke starte uten sitt eksterne manifest. Manifester i seg selv er ikke en kilde til skadevare, selv om man som med alle filer bør være forsiktig med filer som har misvisende doble filtyper.
Formatdetaljer
i et nøtteskall- Java JAR MANIFEST.MF - Inne i .jar-arkiver er META-INF/MANIFEST.MF en ren tekstfil (ikke XML) som lister opp hovedklasse og attributter.
- Web App Manifest - PWA-er bruker et JSON-manifest (vanligvis manifest.json/manifest.webmanifest) som beskriver den installerbare webappen.
- Cache / asset manifest - Ulike verktøy (HTML5 AppCache, byggverktøy, spillmotorer) skriver tekst/JSON .manifest-filer som lister opp inkluderte ressurser.
Programmer som åpner MANIFEST-filer
Tekniske detaljer
dyp spesifikasjon| Filstruktur | XML (UTF-8 tekst); rotelement <assembly> i navnerommet urn:schemas-microsoft-com:asm.v1 |
| MIME-type | application/xml |
| Binær signatur | Ingen - ren XML-tekst; de fleste filer starter med <?xml version="1.0"?> eller direkte med <assembly |
| Innbyggingsmetode | Kan bygges inn som en Win32-ressurs (type RT_MANIFEST, ID 1 for .exe-filer, ID 2 for .dll-filer) inne i den binære filen i stedet for å eksistere som en separat fil |
| Ekstern filnavngiving | Oppkalt etter den tilhørende kjørbare filen med .manifest lagt til (f.eks. app.exe.manifest); må plasseres i samme mappe som den kjørbare filen |
| Hovedroller | Side-by-Side (SxS) assembly-versjonsbinding, UAC-privilegienivå-deklarasjon, Common Controls v6 visuell stil-aktivering, registreringsfri COM-aktivering |
| UAC-tillitsnivåer | Støttede verdier for requestedExecutionLevel: asInvoker, highestAvailable, requireAdministrator |
| Viktige XML-navnerom | urn:schemas-microsoft-com:asm.v1 (assembly-identitet og SxS); urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| SxS-versjonsbinding | Lister opp navn på avhengige samlinger og nøyaktige versjonsnumre (f.eks. 6.0.0.0) for å omdirigere DLL-lasting ved kjøring uten registeroppføringer |
| Plattformstøtte | Windows XP og nyere; UAC requestedExecutionLevel og aktivering av visuelle stiler krever Windows Vista eller nyere |
| Kjøretidsmekanisme | Windows laster manifester inn i en Activation Context (actctx) ved prosessstart for å omdirigere assembly-bindinger transparent |
| Kompileringsmål | Kan kompileres til .cdf-ms (Catalog Definition Format - Manifest Store)-filer for raskere tilgang til kjøretidsparametere |
| Utviklerverktøy | Opprettet og innebygd av Visual Studio, MSBuild og mt.exe Manifest Tool (Windows SDK); kan redigeres i alle tekstredigeringsprogrammer |
| Typisk filstørrelse | 1-10 KB; inneholder kun XML-metadatadeklarasjoner uten binær nyttelast |
| Utgitt | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Spesifikasjon | learn.microsoft.com |
MANIFEST-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om MANIFEST-filer.