Pregunta

Tengo un proyecto en el que al mismo tiempo hay que utilizar los informes construidos en ActiveReports 2 y ActiveReports 6. En general, funciona bien, pero algunos de los montajes de ayuda utilizar el mismo nombre. Por ejemplo, para ser capaz de exportar a PDF, ambas versiones utilizan un conjunto llamado ActiveReports.PdfExport.dll. Los conjuntos correspondientes son diferentes, por supuesto.

Tenga en cuenta que yo no acceda al ActiveReports.PdfExport.dll directamente -. Esto es manejado por los ActiveReports tiempo de ejecución

No se puede encontrar una manera de incluir a ambos en el proyecto. ¿Hay alguna manera? Es GAC la respuesta?

¿Fue útil?

Solución

alias exteriores separadas para cada ensamblaje ayudará si tiene conflictos de nombres tipo. Por conflictos de nombres de montaje, echar un vistazo a ILMerge ; usted puede combinar todos los conjuntos relacionados entre sí. Se podría crear un montaje para ActiveReports 2 que combina todos sus montajes requeridos y otra para ActiveReports 6.

Otros consejos

GAC es una manera, pero la resolución de fusión tiene una gran cantidad de flexibilidad en lo que podría ser suficiente. Fusión hará una comprobación en el BaseDirectory para el nombre de ensamblado. [DLL | EXE]. Si no lo encuentra que sondeará BaseDirectory \ Nombre [DLL | EXE]. \ Nombre. [DLL | EXE]. Por lo que podría ser capaz de salirse con la creación de una carpeta con el nombre ActiveReports.PdfExport.DLL en la carpeta Papelera y el vertido de la versión anterior del archivo en ese país.

Sí, usted tiene que poner tanto en GAC (esto es lo que está hecho para, en el caso de los conjuntos de cliente).

Mi idea:. Crear dos bibliotecas de ayudantes, hacer referencia a cada uno de apropiarse de montaje, registrarlos en una especie de fábrica o gerente y específica una llamada cuando se necesita

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