fbpx
Wikipedia

Infierno de las DLL

El término DLL Hell (infierno de las DLL) se refiere a los problemas ocasionados por los archivos *.dll (Dynamic Link Library, Biblioteca de Enlace Dinámico) en los sistemas operativos de Microsoft, que si no se controla puede llevar al sistema irremisiblemente a la pantalla azul de la muerte.

Estas bibliotecas consisten en un conjunto de código común que puede estar compartido entre varias aplicaciones. En Windows estas bibliotecas están muy extendidas y son compartidas por múltiples aplicaciones (por ejemplo, las MFC están compartidas por prácticamente todas las aplicaciones gráficas). De esta compartición de código surgen dos problemas que constituyen el "infierno":

  • Al instalar un programa se reemplaza una DLL por otra versión incompatible (conflicto de versiones).
  • Al desinstalar un programa se borra una DLL compartida.

En ambos casos los programas que compartan la DLL dejarán de funcionar con los consiguientes trastornos que supone.

Soluciones

Existe un conjunto de soluciones manuales para evitar estos problemas:

  • Incorporar el número de versión a las DLL para evitar sobrescribirlas con versiones incompatibles: Este sistema se usa en la MFC y podemos encontrar, por ejemplo, las bibliotecas MFC41.dll y MFC70.dll en el mismo sistema. El problema es que al final existen varias versiones de las DLL instaladas, aunque en la actualidad no supone un gran trastorno debido a la capacidad de los discos.
  • Fijar el comportamiento y no permitir modificaciones en el mismo: De esta forma se evitaría la existencia de DLLs no compatibles.

Las versiones más modernas de Windows proponen soluciones automáticas para el problema (mayor control del versionado, petición al usuario de qué DLL quiere mantener...) pero las antiguas instalaciones siguen corrompiendo las DLLs. Por ello se han planteado dos soluciones:

  • Scripts de instalación MSI: se trata de pequeñas bases de datos que indican qué ficheros y versiones instala una aplicación. De esta forma es posible determinar qué versiones son compatibles y cuales no, o volver a instalar versiones en el caso de instalaciones corruptas.
  • Ensamblados: Es un concepto que aparece con .NET y consiste en un fragmento de código ejecutable (DLL o EXE) junto a un fichero (que puede estar incorporado como recurso en el fichero) que indica qué contiene, versiones... De esta forma, es posible instalar varias versiones diferentes del mismo ensamblado y cargar la que necesita cada programa usando esa información.
  •   Datos: Q761826

infierno, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, septiembre, 2016, término, hell, infierno, refiere, problemas, ocasionados, archivos, dynamic, link, library, biblioteca, enlace, dinámico, siste. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 1 de septiembre de 2016 El termino DLL Hell infierno de las DLL se refiere a los problemas ocasionados por los archivos dll Dynamic Link Library Biblioteca de Enlace Dinamico en los sistemas operativos de Microsoft que si no se controla puede llevar al sistema irremisiblemente a la pantalla azul de la muerte Estas bibliotecas consisten en un conjunto de codigo comun que puede estar compartido entre varias aplicaciones En Windows estas bibliotecas estan muy extendidas y son compartidas por multiples aplicaciones por ejemplo las MFC estan compartidas por practicamente todas las aplicaciones graficas De esta comparticion de codigo surgen dos problemas que constituyen el infierno Al instalar un programa se reemplaza una DLL por otra version incompatible conflicto de versiones Al desinstalar un programa se borra una DLL compartida En ambos casos los programas que compartan la DLL dejaran de funcionar con los consiguientes trastornos que supone Soluciones EditarExiste un conjunto de soluciones manuales para evitar estos problemas Incorporar el numero de version a las DLL para evitar sobrescribirlas con versiones incompatibles Este sistema se usa en la MFC y podemos encontrar por ejemplo las bibliotecas MFC41 dll y MFC70 dll en el mismo sistema El problema es que al final existen varias versiones de las DLL instaladas aunque en la actualidad no supone un gran trastorno debido a la capacidad de los discos Fijar el comportamiento y no permitir modificaciones en el mismo De esta forma se evitaria la existencia de DLLs no compatibles Las versiones mas modernas de Windows proponen soluciones automaticas para el problema mayor control del versionado peticion al usuario de que DLL quiere mantener pero las antiguas instalaciones siguen corrompiendo las DLLs Por ello se han planteado dos soluciones Scripts de instalacion MSI se trata de pequenas bases de datos que indican que ficheros y versiones instala una aplicacion De esta forma es posible determinar que versiones son compatibles y cuales no o volver a instalar versiones en el caso de instalaciones corruptas Ensamblados Es un concepto que aparece con NET y consiste en un fragmento de codigo ejecutable DLL o EXE junto a un fichero que puede estar incorporado como recurso en el fichero que indica que contiene versiones De esta forma es posible instalar varias versiones diferentes del mismo ensamblado y cargar la que necesita cada programa usando esa informacion Datos Q761826Obtenido de https es wikipedia org w index php title Infierno de las DLL amp oldid 118728401, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos