Si usted trabaja en .NET, usted puede tomar ventaja de su mecanismo de carga de ensamblados.
En pocas palabras, una asamblea que es la que normalmente se carga en memoria cuando uno de sus tipos es la primera vez que accede. Un tipo es la primera vez que accede cuando un método que contiene una referencia a que el tipo empieza a ejecutarse.
Esto significa que usted puede tener su referencia de ensamblado de ESRI.ArcGIS.Marco de interoperabilidad de la asamblea, incluso en el más puro ArcEngine medio ambiente - como cualquiera de los métodos que trabajan con esta asamblea no ejecute nunca. Si no nunca comenzar a ejecutar, el CLR no intente cargar la dependencia.
Esto está bien definido el comportamiento, lo que significa que puede confiar en él sin tener que preocuparse de que va a cambiar entre CLR de prensa.
Si todavía no es adecuado para su situación, hay otras cosas que usted podría hacer, como definir una sencilla interfaz para la configuración de la herramienta actual y el uso de algún tipo de inyección de dependencia/inversión de control. Tendrías otro de los dos conjuntos, cada uno de ellos podría implementar la interfaz de una manera diferente y por lo tanto tiene su propio conjunto de dependencias de ensamblado. La clave es inyectar el comportamiento apropiado, que se suele hacer a través de la configuración, pero algunos contenedores IoC también puede hacer que en tiempo de ejecución.