Pregunta

Me gustaría para cargar dos versiones diferentes de la misma DLL dentro del mismo proceso. Al mismo tiempo, me gustaría para evitar la aparición de ellos en la GAC.

¿Alguna idea?

Gracias, Krikor

¿Fue útil?

Solución

Sí, parece que tengo que cargar manualmente el montaje, de una manera u otra.

Una solución que encontré fue para suscribirse al evento AssemblyResolve del dominio de aplicación. Este evento se genera cuando no se encuentra una asamblea y le permite proporcionar de forma manual.

  1. Vuelve a registrar un controlador de eventos como éste

AppDomain.CurrentDomain.AssemblyResolve + = MyResolveEventHandler;

estática Asamblea MyResolveEventHandler (remitente del objeto, ResolveEventArgs args) {   Assembly.LoadFrom (@ "OldAsm \ Asm.dll") return; }

  1. Una vez que el código que utiliza el código específico que se alcanza el .NET Framework intentará cargar el ensamblado, que se colgará y llamará a su manejador (MyResolveEventHandler).

Me gustaría seguir buscando una manera de resolver la referencia correcta sin tener que escribir ningún código y sin tener que poner nada en la GAC. Si alguien encuentra una manera, por favor, publicarlo.

Gracias

Otros consejos

Activator.CreateInstance. Compruebe MSDN para ejemplos.

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