Hvad er MANIFEST-filformatet?
En .manifest-fil er et XML-dokument, der bruges af Windows-operativsystemet til at levere applikationsmetadata, assembly-bindingsinformation og sikkerhedskonfiguration. Den indeholder strukturerede data i almindelig tekst, der beskriver en eksekverbar fil eller en installationspakke - herunder påkrævede rettigheder, afhængige assemblies, filendelser og runtime-parametre.
Windows bruger .manifest-filer i to primære roller. Den første er Side-by-Side (SxS) assembly-binding, introduceret med Windows XP: manifestet fortæller Windows, hvilken version af delte biblioteker (såsom Common Controls DLL), en applikation afhænger af, hvilket forhindrer «DLL Hell»-konflikter, hvor flere programmer støder sammen over delte komponenter. Et manifest kan også aktivere den visuelle stilmotor - hvilket muliggør det temaorienterede udseende af kontrolelementer - uden at ændre applikationens kernefunktionalitet eller tilgængelige funktioner.
Den anden store rolle, introduceret i Windows Vista, er deklarering af et UAC (User Account Control) rettighedsniveau. Et manifest, der specificerer requireAdministrator eller asInvoker, fortæller Windows, hvilken rettighedseskalering der skal anmodes om, når brugeren starter programmet.
Filnavnet på .manifest matcher typisk den eksekverbare fil, den ledsager, med .manifest tilføjet - for eksempel hedder manifestet for notepad.exe notepad.exe.manifest og ligger i samme mappe. Alternativt kan manifestet kompileres direkte ind i .EXE eller .DLL som en indlejret Win32-ressource (ressourcetypen RT_MANIFEST), hvilket er den foretrukne metode for moderne applikationer.
.manifest-filer bliver også ofte kompileret til CDF-MS-filer, hvilket giver det underliggende program hurtigere adgang til applikationsparametre under kørsel.
Sikkerhed og tryghed
RISIKO: LOWEn .manifest er almindelig XML-tekst - den kan ikke eksekvere, så det er sikkert at åbne en for at læse den. Redigering er den reelle risiko: Ændring af et programs manifest (især UAC-niveau eller assembly-afhængigheder) kan ødelægge opstarten eller forårsage fejlen «side-by-side-konfigurationen er forkert», så tag en sikkerhedskopi af den originale først og rediger kun, hvis du forstår indholdet. Slet ikke en .exe.manifest, der ligger ved siden af et program - nogle apps kan ikke starte uden deres eksterne manifest. Manifester i sig selv er ikke en malware-vektor, selvom man som med alle filer bør være forsigtig med filer med en vildledende dobbelt filendelse.
Formatdetaljer
kort fortalt- Java JAR MANIFEST.MF - Inde i .jar-arkiver er META-INF/MANIFEST.MF en almindelig tekstfil (ikke XML), der lister hovedklasse og attributter.
- Web App Manifest - PWA'er bruger et JSON-manifest (normalt manifest.json/manifest.webmanifest), der beskriver den installerbare web-app.
- Cache / asset manifest - Forskellige værktøjer (HTML5 AppCache, build-værktøjer, spilmotorer) skriver tekst/JSON .manifest-filer, der lister bundtede aktiver.
Programmer der åbner MANIFEST-filer
Tekniske detaljer
dyb specifikation| Filstruktur | XML (UTF-8 tekst); rodelement <assembly> i navnerummet urn:schemas-microsoft-com:asm.v1 |
| MIME-type | application/xml |
| Binær signatur | Ingen - almindelig XML-tekst; de fleste filer starter med <?xml version="1.0"?> eller direkte med <assembly |
| Indlejringsmetode | Kan indlejres som en Win32-ressource (type RT_MANIFEST, ID 1 for .exe-filer, ID 2 for .dll-filer) inde i den binære værtsfil i stedet for at eksistere som en separat fil |
| Ekstern filnavngivning | Navngivet efter den tilknyttede eksekverbare fil med .manifest tilføjet (f.eks. app.exe.manifest); skal placeres i samme mappe som den eksekverbare fil |
| Primære roller | Side-by-Side (SxS) assembly-versionsbinding, UAC-rettighedsniveau-deklaration, Common Controls v6 visuel stil-aktivering, registreringsfri COM-aktivering |
| UAC-tillidsniveauer | Understøttede requestedExecutionLevel-værdier: asInvoker, highestAvailable, requireAdministrator |
| Vigtige XML-navnerum | urn:schemas-microsoft-com:asm.v1 (assembly-identitet og SxS); urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| SxS-versionsbinding | Lister afhængige assembly-navne og præcise versions-quads (f.eks. 6.0.0.0) for at omdirigere DLL-indlæsning ved kørsel uden registreringsdatabase-indtastninger |
| Platformunderstøttelse | Windows XP og nyere; UAC requestedExecutionLevel og aktivering af visuelle stilarter kræver Windows Vista eller nyere |
| Runtime-mekanisme | Windows indlæser manifester i en Activation Context (actctx) ved processtart for at omdirigere assembly-bindinger gennemsigtigt |
| Kompileringsmål | Kan kompileres til .cdf-ms (Catalog Definition Format - Manifest Store) filer for hurtigere adgang til runtime-parametre |
| Udviklerværktøjskæde | Oprettet og indlejret af Visual Studio, MSBuild og mt.exe Manifest Tool (Windows SDK); kan redigeres i enhver tekstbehandler |
| Typisk filstørrelse | 1-10 KB; indeholder kun XML-metadatadeklarationer uden binær payload |
| Udgivet | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Specifikation | learn.microsoft.com |
MANIFEST-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MANIFEST-filer.