For faster navigation, this Iframe is preloading the Wikiwand page for Infierno de las DLL.

Infierno de las DLL

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada. Busca fuentes: «Infierno de las DLL»noticias · libros · académico · imágenesEste aviso fue puesto el 1 de septiembre de 2016.
Captura de un error por un problema con una llamada en un dll.

El término Infierno de las DLLs (del inglés DLL Hell) se refiere a los problemas ocasionados por los archivos *.dll (Dynamic Link Library, Biblioteca de Enlace Dinámico) en los sistemas operativos de Microsoft,[1]​ 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.

Referencias

  1. kexugit (25 de octubre de 2019). «Avoiding DLL Hell: Introducing Application Metadata in the Microsoft .NET Framework». learn.microsoft.com (en inglés estadounidense). Consultado el 4 de febrero de 2024. 
{{bottomLinkPreText}} {{bottomLinkText}}
Infierno de las DLL
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?