Was ist das MANIFEST-Dateiformat?
Eine .manifest-Datei ist ein XML-Dokument, das vom Windows-Betriebssystem verwendet wird, um Anwendungsmetadaten, Assembly-Bindungsinformationen und Sicherheitskonfigurationen bereitzustellen. Sie enthält strukturierten Klartext, der eine ausführbare Datei oder ein Installationspaket beschreibt - einschließlich erforderlicher Berechtigungen, abhängiger Assemblies, Dateierweiterungen und Laufzeitparameter.
Windows verwendet .manifest-Dateien in zwei Hauptrollen. Die erste ist die Side-by-Side-(SxS-)Assembly-Bindung, eingeführt mit Windows XP: Das Manifest teilt Windows mit, von welcher Version gemeinsamer Bibliotheken (wie der Common Controls DLL) eine Anwendung abhängt, und verhindert so „DLL Hell“-Konflikte, bei denen mehrere Programme um gemeinsame Komponenten konkurrieren. Ein Manifest kann auch die Visual-Styles-Engine aktivieren - wodurch das Design-Erscheinungsbild von Steuerelementen ermöglicht wird - ohne die Kernfunktionalität oder verfügbaren Funktionen der Anwendung zu ändern.
Die zweite Hauptrolle, eingeführt mit Windows Vista, ist die Deklaration einer UAC-(User Account Control-)Berechtigungsstufe. Ein Manifest, das requireAdministrator oder asInvoker angibt, teilt Windows mit, welche Rechteerweiterung beim Start des Programms durch den Benutzer angefordert werden soll.
Der .manifest-Dateiname entspricht typischerweise der begleitenden ausführbaren Datei mit angehängtem .manifest - zum Beispiel heißt das Manifest für notepad.exe notepad.exe.manifest und befindet sich im selben Ordner. Alternativ kann das Manifest direkt in die .EXE oder .DLL als eingebettete Win32-Ressource (Ressourcentyp RT_MANIFEST) kompiliert werden, was der bevorzugte Ansatz für moderne Anwendungen ist.
.manifest-Dateien werden häufig auch in CDF-MS-Dateien kompiliert, wodurch das zugrunde liegende Programm zur Laufzeit schneller auf Anwendungsparameter zugreifen kann.
Sicherheit
RISIKO: LOWEin .manifest ist reiner XML-Text - er kann nicht ausgeführt werden, das Öffnen zum Lesen ist also sicher. Das Bearbeiten ist das eigentliche Risiko: Das Ändern des Manifests eines Programms (insbesondere der UAC-Stufe oder Assembly-Abhängigkeiten) kann den Start unterbrechen oder den Fehler „side-by-side configuration is incorrect“ verursachen - sichern Sie daher zuerst das Original und bearbeiten Sie es nur, wenn Sie wissen, was Sie tun. Löschen Sie kein .exe.manifest, das neben einem Programm liegt - manche Apps starten ohne ihr externes Manifest nicht. Manifeste selbst sind kein Malware-Vektor, aber wie bei jeder Datei gilt Vorsicht bei einer mit einer irreführenden doppelten Erweiterung.
Formatdetails
kurz gefasst- Java-JAR MANIFEST.MF - In .jar-Archiven ist META-INF/MANIFEST.MF ein Klartext-(kein XML-)Manifest, das die Hauptklasse und Attribute auflistet.
- Web-App-Manifest - PWAs verwenden ein JSON-Manifest (meist manifest.json/manifest.webmanifest), das die installierbare Web-App beschreibt.
- Cache-/Asset-Manifest - Verschiedene Tools (HTML5 AppCache, Build-Tools, Spiel-Engines) schreiben Text-/JSON-.manifest-Dateien, die gebündelte Assets auflisten.
Programme zum Öffnen von MANIFEST-Dateien
Technische Details
technische Spezifikation| Dateistruktur | XML (UTF-8-Text); Wurzelelement <assembly> im Namespace urn:schemas-microsoft-com:asm.v1 |
| MIME-Typ | application/xml |
| Binäre Signatur | Keine - reiner XML-Text; die meisten Dateien beginnen mit <?xml version="1.0"?> oder direkt mit <assembly |
| Einbettungsmethode | Kann als Win32-Ressource (Typ RT_MANIFEST, ID 1 für .exe-Dateien, ID 2 für .dll-Dateien) in die Host-Binärdatei eingebettet werden, anstatt als separate Datei zu existieren |
| Externer Dateiname | Nach der zugehörigen ausführbaren Datei benannt, mit angehängtem .manifest (z. B. app.exe.manifest); muss im selben Verzeichnis wie die ausführbare Datei abgelegt werden |
| Hauptaufgaben | Side-by-Side-(SxS-)Assembly-Versionsbindung, UAC-Berechtigungsstufendeklaration, Common-Controls-v6-Visual-Styles-Aktivierung, registrierungsfreie COM-Aktivierung |
| UAC-Vertrauensstufen | Unterstützte requestedExecutionLevel-Werte: asInvoker, highestAvailable, requireAdministrator |
| Wichtige XML-Namespaces | urn:schemas-microsoft-com:asm.v1 (Assembly-Identität und SxS); urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| SxS-Versionsbindung | Listet abhängige Assembly-Namen und genaue Versionsquartette (z. B. 6.0.0.0) auf, um das DLL-Laden zur Laufzeit ohne Registrierungseinträge umzuleiten |
| Plattformunterstützung | Windows XP und höher; UAC requestedExecutionLevel und Visual-Styles-Aktivierung erfordern Windows Vista oder höher |
| Laufzeitmechanismus | Windows lädt Manifeste beim Prozessstart in einen Activation Context (actctx), um Assembly-Bindungen transparent umzuleiten |
| Kompilierungsziel | Kann in .cdf-ms-(Catalog Definition Format - Manifest Store-)Dateien kompiliert werden, um zur Laufzeit schneller auf Parameter zuzugreifen |
| Entwickler-Toolchain | Erstellt und eingebettet von Visual Studio, MSBuild und dem mt.exe Manifest Tool (Windows SDK); in jedem Klartexteditor bearbeitbar |
| Typische Dateigröße | 1-10 KB; enthält nur XML-Metadaten-Deklarationen ohne binäre Nutzdaten |
| Veröffentlicht | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Spezifikation | learn.microsoft.com |
MANIFEST-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu MANIFEST-Dateien.