Pregunta

Tengo un proyecto dll que hace referencia Microsoft.Practices.EnterpriseLibrary.Common.dll (="el dll") desde mi directorio de instalación del Biblioteca empresarial de Microsoft 3.1.Tiene una clave pública que comienza con "b03f".
Tengo otro proyecto que hace referencia. Miner.Geodatabase.dll versión 9.30.2.5168 (Muestra 9.2.0.0 en la carpeta GAC).El dll Miner tiene una clave pública que comienza con "196b".
Un tercer dll hace referencia a los otros dos.

Aquí hay una solución simple vs2005 con los proyectos anteriores.ELTest.rar -
1.RefEL, solo referencias el dll desde su carpeta lib.
2.RefGeodatabse, solo hace referencia a la Miner.Geodatabase.dll del GAC.
3.RefAmbos, hace referencia a los otros dos proyectos.

Después de la compilación, la carpeta bin/debug de RefEL contiene la versión "b03f" ("real") de el dll, mientras que el contenedor/depuración de RefGeodatabase y RefBoth contienen una versión de el dll con una clave pública que comienza con "196b", igual que la DLL de Miner.Me parece que han vuelto a compilar la biblioteca empresarial (y posiblemente hayan cambiado algo).
En tiempo de ejecución (en mi solución real, no en esta solución falsa), mis "ambos" proyectos llaman al proyecto "EL", que necesita el dll "b03f", no lo encuentran y falla.

¿Que se supone que haga?Tal vez si registro las DLL de Enterprise Library en el GAC, se encontrarán en tiempo de ejecución.¿Existe alguna solución diferente que no requiera que instale entlib en mi computadora de destino?

¿Fue útil?

Solución

Bueno, he decidido registrar la versión normal ("b03f") de la biblioteca empresarial en mi GAC (y también en las computadoras de producción).he usado este enlace para registrar todos los dlls a la vez.trabajado como un encanto.

Ahora, mi proyecto RefEL hace referencia a la versión GAC de el dll, y aunque RefGeodatabase tiene Miner.Geodatabase.dll, que hace referencia a la versión "196b" del GAC con CopyLocal=true, en tiempo de ejecución mi proyecto encuentra la versión "b03f" en el GAC y no falla.

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