Vad är filformatet MANIFEST?
En .manifest-fil är ett XML-dokument som används av operativsystemet Windows för att tillhandahålla metadata för applikationer, information om sammansättningsbindning (assembly binding) och säkerhetskonfiguration. Den innehåller strukturerad data i klartext som beskriver en körbar fil eller ett installationspaket - inklusive nödvändiga behörigheter, beroende sammansättningar, filändelser och körningsparametrar.
Windows använder .manifest-filer i två huvudsakliga roller. Den första är Side-by-Side (SxS) assembly-bindning, som introducerades med Windows XP: manifestet talar om för Windows vilken version av delade bibliotek (som t.ex. Common Controls DLL) en applikation är beroende av, vilket förhindrar «DLL Hell»-konflikter där flera program krockar om delade komponenter. Ett manifest kan också aktivera motorn för visuella stilar - vilket möjliggör det tema-anpassade utseendet på kontroller - utan att ändra applikationens kärnfunktionalitet eller tillgängliga funktioner.
Den andra stora rollen, som introducerades i Windows Vista, är att deklarera en UAC-behörighetsnivå (User Account Control). Ett manifest som anger requireAdministrator eller asInvoker talar om för Windows vilken behörighetshöjning som ska begäras när användaren startar programmet.
Filnamnet för .manifest matchar vanligtvis den körbara filen den åtföljer, med .manifest tillagt - till exempel heter manifestet för notepad.exe notepad.exe.manifest och ligger i samma mapp. Alternativt kan manifestet kompileras direkt in i .EXE eller .DLL som en inbäddad Win32-resurs (resurstyp RT_MANIFEST), vilket är den föredragna metoden för moderna applikationer.
.manifest-filer kompileras också ofta in i CDF-MS-filer, vilket ger det underliggande programmet snabbare åtkomst till applikationsparametrar vid körning.
Säkerhet & trygghet
RISK: LOWEn .manifest är vanlig XML-text - den kan inte köras, så det är säkert att öppna en för att läsa den. Redigering är den verkliga risken: att ändra ett programs manifest (särskilt UAC-nivå eller assembly-beroenden) kan göra att programmet inte startar eller orsaka felet «side-by-side configuration is incorrect», så säkerhetskopiera originalet först. Radera inte en .exe.manifest som ligger bredvid ett program - vissa appar kan inte starta utan sitt externa manifest. Manifest i sig är inte en vektor för skadlig kod, men som med alla filer bör du vara försiktig med filer som har vilseledande dubbla filändelser.
Formatdetaljer
i ett nötskal- Java JAR MANIFEST.MF - Inuti .jar-arkiv är META-INF/MANIFEST.MF en klartextfil (inte XML) som listar huvudklass och attribut.
- Web App Manifest - PWA-appar använder ett JSON-manifest (vanligtvis manifest.json/manifest.webmanifest) som beskriver den installerbara webbappen.
- Cache / asset manifest - Olika verktyg (HTML5 AppCache, byggverktyg, spelmotorer) skriver text/JSON .manifest-filer som listar inkluderade resurser.
Program som öppnar MANIFEST-filer
Tekniska detaljer
djup specifikation| Filstruktur | XML (UTF-8 text); rotelement <assembly> i namnrymden urn:schemas-microsoft-com:asm.v1 |
| MIME-typ | application/xml |
| Binär signatur | Ingen - vanlig XML-text; de flesta filer börjar med <?xml version="1.0"?> eller direkt med <assembly |
| Inbäddningsmetod | Kan bäddas in som en Win32-resurs (typ RT_MANIFEST, ID 1 för .exe-filer, ID 2 för .dll-filer) inuti den binära värden istället för att existera som en separat fil |
| Externt filnamn | Namnges efter den tillhörande körbara filen med .manifest tillagt (t.ex. app.exe.manifest); måste placeras i samma katalog som den körbara filen |
| Huvudsakliga roller | Side-by-Side (SxS) assembly-versionsbindning, deklaration av UAC-behörighetsnivå, aktivering av Common Controls v6 visuella stilar, registreringsfri COM-aktivering |
| UAC-förtroendenivåer | Värden för requestedExecutionLevel som stöds: asInvoker, highestAvailable, requireAdministrator |
| Viktiga XML-namnrymder | urn:schemas-microsoft-com:asm.v1 (assembly-identitet och SxS); urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| SxS-versionsbindning | Listar namn på beroende sammansättningar och exakta versionsnummer (t.ex. 6.0.0.0) för att omdirigera DLL-laddning vid körning utan registerposter |
| Plattformssupport | Windows XP och senare; UAC requestedExecutionLevel och aktivering av visuella stilar kräver Windows Vista eller senare |
| Körningsmekanism | Windows laddar manifest i en Activation Context (actctx) vid processstart för att omdirigera assembly-bindningar transparent |
| Kompileringsmål | Kan kompileras till .cdf-ms (Catalog Definition Format - Manifest Store) filer för snabbare åtkomst till parametrar vid körning |
| Verktygskedja för utvecklare | Skapas och bäddas in av Visual Studio, MSBuild och mt.exe Manifest Tool (Windows SDK); redigerbar i valfri textredigerare |
| Typisk filstorlek | 1-10 KB; innehåller endast XML-metadatadeklarationer utan binär nyttolast |
| Släppt | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Specifikation | learn.microsoft.com |
MANIFEST-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om MANIFEST-filer.