Manifiesto mantiene la información sobre los ensamblajes como versión, nombre de configuración regional y un nombre fuerte opcional que identifica de forma única el ensamblaje. Esta información manifiesta es utilizada por CLR. El manifiesto también contiene las exigencias de seguridad para verificar este ensamblaje. También contiene los nombres y hash de todos los archivos que componen el conjunto. El manifiesto de ensamblado .NET contiene un hash criptográfico de diferentes módulos en el ensamblaje. Y cuando se carga el ensamblado, el CLR recalcula el hash de los módulos en cuestión, y lo compara con el hash incrustado . Si el hash generado en tiempo de ejecución es diferente al del encontrado en el manifiesto, .NET se niega a cargar el ensamblaje y arroja una excepción.
Metadata significa datos sobre los datos. Los metadatos producen los tipos disponibles en ese ensamblaje, es decir. clases, interfaces, enumeraciones, estructuras, etc., y sus espacios de nombres que contienen, el nombre de cada tipo, su visibilidad/alcance, su clase base, las interfaces que implementó, sus métodos y su alcance, y los parámetros de cada método , propiedades del tipo, etc. Los metadatos del ensamblado son generados automáticamente por los compiladores de alto nivel a partir de los archivos fuente. El compilador incrusta los metadatos en el archivo de salida de destino, un dll, un .exe o un .netmodule en el caso del ensamblado de varios módulos .
Esa declaración citada es de calidad cuestionable. Da una definición de "manifiesto" en el contexto específico de .NET, pero en lugar de hacer lo mismo con el término "metadatos", se recurre a una definición muy general de la palabra que no es del todo útil con respecto a .NET. En .NET, "metadatos" generalmente significa algo como "información, incrustada en un ensamblaje, sobre todos los tipos y sus miembros definidos o referenciados desde ese ensamblaje". ¿Cuál es la fuente de tu cita? – stakx