¿Qué es el formato de archivo MANIFEST?
Un archivo .manifest es un documento XML utilizado por el sistema operativo Windows para proporcionar metadatos de la aplicación, información de enlace de ensamblados y configuración de seguridad. Contiene datos estructurados en texto plano que describen un ejecutable o un paquete de instalación, incluidos los privilegios requeridos, los ensamblados dependientes, las extensiones de archivo y los parámetros de tiempo de ejecución.
Windows utiliza archivos .manifest en dos funciones principales. La primera es el enlace de ensamblados Side-by-Side (SxS), introducido con Windows XP: el manifiesto le indica a Windows de qué versión de las bibliotecas compartidas (como la DLL de Controles Comunes) depende una aplicación, evitando conflictos de «DLL Hell» donde varios programas chocan por componentes compartidos. Un manifiesto también puede activar el motor de estilos visuales -permitiendo la apariencia temática de los controles- sin cambiar la funcionalidad principal de la aplicación ni las características disponibles.
La segunda función principal, introducida en Windows Vista, es declarar un nivel de privilegio de UAC (Control de cuentas de usuario). Un manifiesto que especifica requireAdministrator o asInvoker le indica a Windows qué elevación solicitar cuando el usuario inicia el programa.
El nombre de archivo .manifest normalmente coincide con el ejecutable al que acompaña, con .manifest añadido; por ejemplo, el manifiesto para notepad.exe se llama notepad.exe.manifest y se encuentra en la misma carpeta. Alternativamente, el manifiesto puede compilarse directamente en el .EXE o .DLL como un recurso Win32 incrustado (tipo de recurso RT_MANIFEST), que es el enfoque preferido para las aplicaciones modernas.
Los archivos .manifest también se compilan comúnmente en archivos CDF-MS, lo que le da al programa subyacente un acceso más rápido a los parámetros de la aplicación en tiempo de ejecución.
Seguridad y protección
RIESGO: LOWUn .manifest es texto XML plano: no puede ejecutarse, por lo que abrir uno para leerlo es seguro. El riesgo real es la edición: cambiar el manifiesto de un programa (especialmente el nivel de UAC o las dependencias de ensamblado) puede impedir el inicio o causar un error de «la configuración en paralelo no es correcta», así que haga una copia de seguridad del original primero y solo edítelo si lo comprende. No elimine un .exe.manifest que esté junto a un programa; algunas aplicaciones no se inician sin su manifiesto externo. Los manifiestos en sí mismos no son un vector de malware, aunque, como con cualquier archivo, tenga cuidado con los que tengan una doble extensión engañosa.
Detalles del formato
en pocas palabras- Java JAR MANIFEST.MF - Dentro de los archivos .jar, META-INF/MANIFEST.MF es un manifiesto de texto plano (no XML) que enumera la clase principal y los atributos.
- Manifiesto de aplicación web - Las PWA utilizan un manifiesto JSON (normalmente manifest.json/manifest.webmanifest) que describe la aplicación web instalable.
- Manifiesto de caché / activos - Varias herramientas (HTML5 AppCache, herramientas de compilación, motores de juegos) escriben archivos .manifest en texto/JSON que enumeran los activos incluidos.
Programas que abren archivos MANIFEST
Detalles técnicos
especificación profunda| Estructura del archivo | XML (texto UTF-8); elemento raíz <assembly> en el espacio de nombres urn:schemas-microsoft-com:asm.v1 |
| Tipo MIME | application/xml |
| Firma binaria | Ninguna - texto XML plano; la mayoría de los archivos comienzan con <?xml version="1.0"?> o directamente con <assembly |
| Método de incrustación | Puede incrustarse como un recurso Win32 (tipo RT_MANIFEST, ID 1 para archivos .exe, ID 2 para archivos .dll) dentro del binario anfitrión en lugar de existir como un archivo separado |
| Nomenclatura de archivos externos | Nombrado según el ejecutable asociado con .manifest añadido (p. ej., app.exe.manifest); debe colocarse en el mismo directorio que el ejecutable |
| Funciones principales | Enlace de versiones de ensamblados Side-by-Side (SxS), declaración de nivel de privilegio UAC, activación de estilos visuales de Controles Comunes v6, activación de COM sin registro |
| Niveles de confianza UAC | Valores de requestedExecutionLevel admitidos: asInvoker, highestAvailable, requireAdministrator |
| Espacios de nombres XML clave | urn:schemas-microsoft-com:asm.v1 (identidad de ensamblado y SxS); urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| Enlace de versiones SxS | Enumera los nombres de los ensamblados dependientes y las versiones exactas (p. ej., 6.0.0.0) para redirigir la carga de DLL en tiempo de ejecución sin entradas en el registro |
| Soporte de plataforma | Windows XP y posteriores; el requestedExecutionLevel de UAC y la activación de estilos visuales requieren Windows Vista o posterior |
| Mecanismo de tiempo de ejecución | Windows carga los manifiestos en un Contexto de Activación (actctx) al inicio del proceso para redirigir los enlaces de ensamblado de forma transparente |
| Objetivo de compilación | Puede compilarse en archivos .cdf-ms (Catalog Definition Format - Manifest Store) para un acceso más rápido a los parámetros en tiempo de ejecución |
| Herramientas de desarrollo | Creado e incrustado por Visual Studio, MSBuild y la herramienta de manifiesto mt.exe (Windows SDK); editable en cualquier editor de texto plano |
| Tamaño de archivo típico | 1-10 KB; contiene solo declaraciones de metadatos XML sin carga binaria |
| Lanzado | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Especificación | learn.microsoft.com |
Conversiones de MANIFEST
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos MANIFEST.