C # Cargar diferentes versiones de ensamblaje al mismo proyecto.

Estoy creando una herramienta que realiza varias operaciones como NUnit. Dentro de esta herramienta, abro el ensamblado .dll e invoco los métodos para ejecutar alguna prueba.

Todo va bien hasta el momento en que necesito recargar .dll sin reiniciar nuestro programa. La idea es que cuando se ejecuta la herramienta, copiamos el ensamblaje requerido a alguna carpeta temporal e invocamos desde allí. Si necesito volver a cargar, copio otra en otra carpeta temporal e intento cargar la nueva copia de otra carpeta y cargarla en el objeto de ensamblaje anterior.

  ExecutingAssembly = Assembly.LoadFrom(AssemblyFullPath); 

Pero mi problema es que, después de cambiar AssemblyFullPath a una nueva y llamar a Assembly.LoadFrom, devuelve el ensamblaje anterior lo que se cargó la primera vez, ¡pero no la segunda! ¿Quizás el problema es que no podemos cargar varios ensamblajes con diferentes versiones? ¿Cuál es la solución?

Respuestas a la pregunta(3)

Su respuesta a la pregunta