Usar. .NET para obtener el ensamblador cargado está incompleto, aunque nos referimos a otras librerías pero sin llamar, no puede obtenerse en el ensamblador cargado; este artículo comparte para obtener el ensamblador completo en WinForm y ASP.NET.
Introducción
Usar. .NET para obtener el ensamblador cargado está incompleto, aunque nos referimos a otras librerías pero sin llamar, no puede obtenerse en el ensamblador cargado; este artículo comparte para obtener el ensamblador completo en WinForm y ASP.NET.
ASP.NET (sin medida)
El .NET Framework pospone la carga de ensamblajes en el AppDomain actual hasta que sean necesarios. Por ejemplo, si solo llamas a una librería de terceros desde SomeMethod(), la DLL de terceros normalmente no se cargará hasta la primera ejecución de SomeMethod().
AppDomain.GetAssemblies() te da todos los ensamblajes que se han cargado en el AppDomain actual. BuildManager.GetReferencedAssemblies() devuelve una lista de todos los ensambladores referenciados desde Web.config y otras ubicaciones, y carga esos ensamblajes en el AppDomain actual.
Código:
WinForm
Empieza usando el código de abajo para obtener el ensamblaje cargado.
El número de ensamblajes obtenidos es 12, como se muestra en la siguiente figura:
Cuando no llamamos los métodos de otras librerías, la aplicación principal no carga sus DLLs, probablemente para ahorrar sobrecarga de rendimiento, así que la primera vez que llamamos métodos a otras librerías puede ser un poco más lento.
Utiliza el código modificado, de la siguiente manera:
El número de ensambladores obtenidos es 117, y el principio es poner la dll en el directorio de la aplicación y cargarla.
En este caso, al llamar a AppDomain.CurrentDomain.GetAssemblies(). Método ToList(), puedes obtener el ensamblaje completo, que puede ser más de 117.
Consigue el conjunto actual
|