remove how example clean check cache and .net assemblies gac

how - Prioridades de carga de ensamblajes.NET



remove gac assembly (2)

Respuesta corta , el GAC tiene prioridad sobre los archivos locales.
este es un comportamiento diferente del que estamos acostumbrados en el mundo nativo de dll (excluyendo algunos dll del sistema que siempre se cargaron desde SYSTEM32).

¿Por qué?
Imagina que tienes varias aplicaciones con el mismo ensamblaje ahora que el ensamblaje tiene un error, ¿cómo arreglas todas tus aplicaciones? Es difícil comenzar a buscar todas las aplicaciones en todos los controladores, es más fácil implementar un solo ensamblaje en el GAC y corregir todas las aplicaciones a la vez.

En cuanto a su problema, si cambia la API, necesita cambiar la versión de ensamblaje de ese ensamblaje, de esta manera el motor de fusión recogerá la versión que se encuentra en la carpeta local.

Tengo una solución con 3 proyectos (GUI, BL y DAL). El ensamblaje de DAL se firma y se implementa en el GAC.

Cuando compilo la solución, se compila el DAL y el ensamblaje se coloca en la carpeta bin del proyecto principal. Pero cuando ejecuto la aplicación, carga la versión de GAC en lugar de la local. ¿Por qué es esto?

Me di cuenta de eso porque la versión en el GAC no era la más reciente y faltaban algunos métodos, aunque se compilaba bien.

¿El GAC tiene prioridad sobre la carpeta del contenedor local?

Tks por adelantado


Sí, compruebe primero el GAC. Las reglas de carga están documentadas here . Para solucionar su problema, debe actualizar la versión de ensamblaje a medida que cambia la API.