c# - microsoft - visual studio community
Diferentes versiones de Enterprise Library en un proceso (1)
Estamos desarrollando un complemento para Autodesk Inventor. Nuestro software es un conjunto de ensamblajes dll cargados en Inventor en tiempo de ejecución. Hemos decidido utilizar Microsoft Enterprise Library 5.0 para el registro y el manejo de excepciones.
Ahora tenemos un problema, porque resulta que Inventor 2013 usa Enterprise Library 4.1. Cuando se carga nuestro complemento, no se carga la versión correcta de un ensamblaje, porque Inventor ya tiene una versión anterior en su directorio Bin.
Opciones que hemos considerado hasta ahora:
- Durante la implementación de nuestro producto, sobrescriba las bibliotecas antiguas en la carpeta Bin de Inventor.
- Use EL 4.1 en nuestros ensambles
Ambos son malos y me estoy quedando sin ideas, entonces estoy pidiendo ayuda.
La opción 1 plantea esta pregunta: ¿la biblioteca Enterprise es compatible con versiones anteriores y reemplazará esas DLL en la carpeta Bin causar problemas? Lo he intentado, Inventor no se queja y funciona como se esperaba (no ha revisado la funcionalidad EL).
La Opción 2 nos hace usar la versión anterior y nos vincula a la versión que usa Autodesk, por lo que tendríamos que mirar cuando se actualicen, especialmente cuando lanzan una nueva versión de Inventor.
¿Cuál es la mejor práctica en este escenario?
ACTUALIZAR:
Solucionamos esto simplemente colocando la versión más nueva de Enterprise Library en GAC. Creo que lo que sucedió aquí fue que .NET intentó cargar primero la versión anterior (porque era más alta en el orden de búsqueda del ensamblado) y después de fallar nunca más buscó la versión adecuada. Cuando está en GAC, se resuelve correctamente.
Por lo que puedo ver, una solución razonable sería incorporar los ensamblajes y acceder a ellos utilizando la clase ResourceManager, esto le permitiría usar las versiones más nuevas mientras se mantiene el mecanismo de registro de proyectos principales.
Puede encontrar útil esta pregunta: Incrustar ensamblajes dentro de otro ensamblaje