Qu'est-ce que le format de fichier MANIFEST ?
Un fichier .manifest est un document XML utilisé par le système d'exploitation Windows pour fournir des métadonnées d'application, des informations de liaison d'assembly et une configuration de sécurité. Il contient des données structurées en texte brut décrivant un exécutable ou un package d'installation - y compris les privilèges requis, les assemblys dépendants, les extensions de fichiers et les paramètres d'exécution.
Windows utilise les fichiers .manifest dans deux rôles principaux. Le premier est la liaison d'assembly Side-by-Side (SxS), introduite avec Windows XP : le manifeste indique à Windows de quelle version des bibliothèques partagées (telles que la DLL Common Controls) une application dépend, évitant ainsi les conflits « DLL Hell » où plusieurs programmes s'affrontent pour des composants partagés. Un manifeste peut également activer le moteur de styles visuels - permettant l'apparence thématique des contrôles - sans modifier la fonctionnalité de base de l'application ou les fonctionnalités disponibles.
Le second rôle majeur, introduit dans Windows Vista, est la déclaration d'un niveau de privilège UAC (User Account Control). Un manifeste spécifiant requireAdministrator ou asInvoker indique à Windows quelle élévation demander lorsque l'utilisateur lance le programme.
Le nom de fichier .manifest correspond généralement à l'exécutable qu'il accompagne, avec .manifest ajouté - par exemple, le manifeste pour notepad.exe est nommé notepad.exe.manifest et se trouve dans le même dossier. Alternativement, le manifeste peut être compilé directement dans le .EXE ou la .DLL en tant que ressource Win32 intégrée (type de ressource RT_MANIFEST), ce qui est l'approche privilégiée pour les applications modernes.
Les fichiers .manifest sont également couramment compilés dans des fichiers CDF-MS, offrant au programme sous-jacent un accès plus rapide aux paramètres de l'application au moment de l'exécution.
Sécurité et sûreté
RISQUE : LOWUn fichier .manifest est du texte XML brut - il ne peut pas s'exécuter, donc en ouvrir un pour le lire est sûr. L'édition est le vrai risque : modifier le manifeste d'un programme (surtout le niveau UAC ou les dépendances d'assembly) peut empêcher le démarrage ou causer une erreur « la configuration côte-à-côte est incorrecte », donc sauvegardez l'original d'abord et n'éditez que si vous comprenez ce que vous faites. Ne supprimez pas un .exe.manifest situé à côté d'un programme - certaines applications ne se lancent pas sans leur manifeste externe. Les manifestes eux-mêmes ne sont pas un vecteur de logiciels malveillants, bien que, comme pour tout fichier, il faille se méfier de ceux ayant une double extension trompeuse.
Détails du format
en bref- MANIFEST.MF de Java JAR - À l'intérieur des archives .jar, META-INF/MANIFEST.MF est un manifeste en texte brut (pas XML) listant la classe principale et les attributs.
- Manifeste d'application Web - Les PWA utilisent un manifeste JSON (généralement manifest.json/manifest.webmanifest) décrivant l'application web installable.
- Manifeste de cache / d'actifs - Divers outils (HTML5 AppCache, outils de build, moteurs de jeu) écrivent des fichiers .manifest en texte/JSON listant les actifs groupés.
Programmes qui ouvrent les fichiers MANIFEST
Détails techniques
spécifications approfondies| Structure du fichier | XML (texte UTF-8) ; élément racine <assembly> dans l'espace de noms urn:schemas-microsoft-com:asm.v1 |
| Type MIME | application/xml |
| Signature binaire | Aucune - texte XML brut ; la plupart des fichiers commencent par <?xml version="1.0"?> ou directement par <assembly |
| Méthode d'intégration | Peut être intégré en tant que ressource Win32 (type RT_MANIFEST, ID 1 pour les fichiers .exe, ID 2 pour les fichiers .dll) à l'intérieur du binaire hôte au lieu d'exister en tant que fichier séparé |
| Nommage du fichier externe | Nommé d'après l'exécutable associé avec .manifest ajouté (ex: app.exe.manifest) ; doit être placé dans le même répertoire que l'exécutable |
| Rôles principaux | Liaison de version d'assembly Side-by-Side (SxS), déclaration de niveau de privilège UAC, activation des styles visuels Common Controls v6, activation COM sans enregistrement |
| Niveaux de confiance UAC | Valeurs requestedExecutionLevel prises en charge : asInvoker, highestAvailable, requireAdministrator |
| Espaces de noms XML clés | urn:schemas-microsoft-com:asm.v1 (identité d'assembly et SxS) ; urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| Liaison de version SxS | Répertorie les noms d'assemblys dépendants et les quads de version exacts (ex: 6.0.0.0) pour rediriger le chargement des DLL au moment de l'exécution sans entrées de registre |
| Support plateforme | Windows XP et versions ultérieures ; le requestedExecutionLevel UAC et l'activation des styles visuels nécessitent Windows Vista ou ultérieur |
| Mécanisme d'exécution | Windows charge les manifestes dans un contexte d'activation (actctx) au démarrage du processus pour rediriger les liaisons d'assembly de manière transparente |
| Cible de compilation | Peut être compilé dans des fichiers .cdf-ms (Catalog Definition Format - Manifest Store) pour un accès plus rapide aux paramètres d'exécution |
| Chaîne d'outils de développement | Créé et intégré par Visual Studio, MSBuild et l'outil de manifeste mt.exe (Windows SDK) ; éditable dans n'importe quel éditeur de texte brut |
| Taille de fichier typique | 1-10 Ko ; contient uniquement des déclarations de métadonnées XML sans charge utile binaire |
| Publié | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Spécification | learn.microsoft.com |
Conversions MANIFEST
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MANIFEST.