Domanda

Ho un progetto in cui ho contemporaneamente devono utilizzare i rapporti costruiti in ActiveReports 2 e ActiveReports 6. In generale, funziona bene, ma alcune delle assemblee helper utilizzare lo stesso nome. Per esempio, per essere in grado di esportare in PDF, entrambe le versioni utilizzano un assembly chiamato ActiveReports.PdfExport.dll. I complessi corrispondenti sono differenti, naturalmente.

Si noti che io non accedere direttamente alla ActiveReports.PdfExport.dll -. Questo viene gestito dalle ActiveReports runtime

non riesco a trovare un modo per includere entrambi nel progetto. C'è un modo? GAC è la risposta?

È stato utile?

Soluzione

alias esterni separati per ciascun assemblaggio vi aiuterà se avete nome tipo collisioni. Per il montaggio nome collisioni, dare un'occhiata a ILMerge ; è possibile combinare tutti i gruppi collegati insieme. Faresti crea un assembly per ActiveReports 2 che combina tutte le sue assemblee richieste e un altro per ActiveReports 6.

Altri suggerimenti

GAC è un modo, ma la risoluzione Fusion ha un sacco di flessibilità in esso che potrebbe bastare. Fusion sonda nel BaseDirectory per il nome dell'assembly. [DLL | EXE]. Se non si trova dovrete rilevare BaseDirectory \ Nome [DLL | EXE]. \ Nome. [DLL | EXE]. Così si potrebbe essere in grado di cavarsela con la creazione di una cartella denominata ActiveReports.PdfExport.DLL nella cartella bin e il dumping la versione precedente del file in là.

Sì, si deve mettere entrambi in GAC (questo è ciò che è fatto per, in caso di assemblee client).

La mia idea:. Creare due biblioteche-aiutanti, fare riferimento a ciascuno di corretto montaggio, registrarli in una sorta di fabbrica o di manager e specifica una chiamata quando è necessario

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top