¿En qué orden se buscan las ubicaciones para cargar las DLL a las que se hace referencia?

StackOverflow https://stackoverflow.com/questions/49972

  •  09-06-2019
  •  | 
  •  

Pregunta

Sé que .NET framework busca archivos DLL referenciados en varias ubicaciones

  • Caché de ensamblado global (GAC)
  • Cualquier ruta privada agregada al AppDomain
  • El directorio actual del ensamblaje en ejecución.

¿En qué orden se buscan esas ubicaciones?¿Se detiene la búsqueda de una DLL si se encuentra una coincidencia o continúa en todas las ubicaciones (y, de ser así, cómo se resuelven los conflictos)?

Además, confirme o rechace esas ubicaciones y proporcione cualquier otra ubicación que no haya mencionado.

¿Fue útil?

Solución

La carga de ensamblados es un proceso bastante elaborado que depende de muchos factores diferentes, como archivos de configuración, políticas del editor, configuración del dominio de aplicación, hosts CLR, nombres de ensamblados parciales o completos, etc.

La versión simple es que primero está el GAC y luego las rutas privadas.%PATH% nunca se utiliza.

Lo mejor es usar Visor de registros de enlace de ensamblados (Fuslogvw.exe) para depurar cualquier problema de carga del ensamblaje.

EDITAR http://msdn.microsoft.com/en-us/library/aa720133.aspx explica el proceso con más detalle.

Otros consejos

encontré un artículo haciendo referencia al artículo de MSDN sobre orden de búsqueda de DLL que dice

Para las dependencias de código administrados, el caché de ensamblaje global siempre prevalece;El ensamblaje local en el directorio de aplicaciones no se recogerá si hay una copia existente (o más nueva con la política) en el GAC.

Teniendo esto en cuenta, supongo que la lista de MSDN es correcta con una adición

0. Global assembly cache

"¡Ya no se busca primero el directorio actual al cargar archivos DLL!Este cambio también se realizó en Windows XP SP1.El comportamiento predeterminado ahora es buscar primero en todas las ubicaciones del sistema, luego en el directorio actual y finalmente en las rutas definidas por el usuario".

(árbitro. http://weblogs.asp.net/pwilson/archive/2003/06/24/9214.aspx)

El orden de búsqueda predeterminado, que la aplicación puede cambiar, también se describe en MSDN: http://msdn.microsoft.com/en-us/library/ms682586.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top