DLL Hell

DLL Hell

DLL Hell

El término DLL Hell (infierno de las DLL) se refiere a los problemas ocasionados por las DLL (bibliotecas de enlace dinámico).

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, la MFC está compartida 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.
Obtenido de "DLL Hell"

Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • DLL hell — (DLL кошмар, буквально: DLL ад)  тупиковая ситуация, связанная с управлением динамическими библиотеками DLL в операционной системе Microsoft Windows. Аналогичная проблема в других ОС носит название Dependency hell. Сущность проблемы… …   Википедия

  • DLL hell — In computing, DLL hell is a colloquial term for the complications that arise when working with dynamic link libraries, (DLLs), used with Microsoft Windows operating systems.Although the term is Windows specific, and the more general term is… …   Wikipedia

  • DLL Hell — In computing, DLL Hell is a term for the complications that arise when working with dynamic link libraries (DLLs) used with Microsoft Windows operating systems,[1] particularly legacy 16 bit editions which all run in a single memory space. While… …   Wikipedia

  • DLL Hell — Der Ausdruck DLL Konflikt (auch DLL Hell, deutsch: „DLL Hölle“ genannt) bezeichnet ein Problem, das durch die Installation von Dynamic Link Library (DLLs) auf den Betriebssystemen der Windows Reihe (Windows 3.x, Windows 9x, Windows ME, Windows NT …   Deutsch Wikipedia

  • DLL Hell — El término DLL Hell (El infierno de las DLLs) se refiere a los problemas ocasionados por las DLLs (Bibliotecas de enlace dinámico). Estas bibliotecas consisten en un conjunto de código común que puede estar compartido entre varias aplicaciones.… …   Enciclopedia Universal

  • DLL hell — noun Problems caused by incompatible versions of a DLL (dynamic link library). A more succinct way to say this is that the versioning the CLR enforces for strong named assemblies means the end of DLL hell …   Wiktionary

  • DLL — (англ. Dynamic link library  динамически подключаемая библиотека)  понятие операционных систем Microsoft Windows и IBM OS/2; динамическая библиотека, позволяющая многократное применение различными программными приложениями. K DLL… …   Википедия

  • Hell (disambiguation) — Hell, according to many religious beliefs, is a place of suffering during afterlife where the wicked or unrighteous souls are punished.* Hell in Christian beliefs * Hell in popular culture * Problem of Hell, a variant of the problem of evil *… …   Wikipedia

  • DLL-Hölle — Der Ausdruck DLL Konflikt (auch DLL Hell, deutsch: „DLL Hölle“ genannt) bezeichnet ein Problem, das durch die Installation von Dynamic Link Library (DLLs) auf den Betriebssystemen der Windows Reihe (Windows 3.x, Windows 9x, Windows ME, Windows NT …   Deutsch Wikipedia

  • DLL-Konflikt — Der Ausdruck DLL Konflikt (auch DLL Hell, deutsch: „DLL Hölle“ genannt) bezeichnet ein Problem, das durch die Installation von Dynamic Link Library (DLLs) auf den Betriebssystemen der Microsoft Windows Reihe entstehen kann. Vorwiegend sind ältere …   Deutsch Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”