Carga de dependencias en .NET

Todas las aplicaciones .NET tienen dependencias. Incluso la aplicación sencilla hello world tiene dependencias de partes de las bibliotecas de clases de .NET.

La descripción de la lógica predeterminada de carga de ensamblados de .NET puede ayudar a solucionar los problemas de implementación habituales.

En algunas aplicaciones, las dependencias se determinan dinámicamente en tiempo de ejecución. En estas situaciones, es fundamental entender cómo se cargan los ensamblados administrados y las dependencias no administradas.

AssemblyLoadContext

La API AssemblyLoadContext es fundamental para el diseño de la carga de .NET. En el artículo Descripción de AssemblyLoadContext se proporciona información general conceptual del diseño.

Carga de detalles

Los detalles del algoritmo de carga se describen brevemente en varios artículos:

Creación de una aplicación con complementos

En el tutorial Creación de una aplicación .NET con complementos se describe cómo crear un elemento AssemblyLoadContext personalizado. Usa un elemento AssemblyDependencyResolver para resolver las dependencias del complemento. El tutorial aísla correctamente las dependencias del complemento de la aplicación host.

Capacidad de descarga del ensamblado

El artículo Uso y depuración de la descargabilidad de ensamblado en .NET es un tutorial detallado. Se muestra cómo cargar una aplicación .NET, ejecutarla y luego descargarla. En el artículo también se proporcionan sugerencias de depuración.

Recopilación de información detallada de carga de ensamblados

En el artículo Recopilación de información detallada de carga de ensamblados se describe cómo recopilar información detallada sobre la carga de ensamblados administrados en el entorno de ejecución. Usa la herramienta dotnet-trace para capturar eventos del cargador de ensamblados en un seguimiento de un proceso en ejecución.