Question

J'ai un projet où je dois utiliser simultanément des rapports construits dans ActiveReports 2 et ActiveReports 6. Dans l'ensemble, il fonctionne bien, mais quelques-uns des ensembles d'aide utiliser le même nom. Par exemple, pour pouvoir exporter au format PDF, les deux versions utilisent un ensemble appelé ActiveReports.PdfExport.dll. Les ensembles correspondants sont différents, bien sûr.

Notez que je ne pas accéder au ActiveReports.PdfExport.dll directement -. Cela est géré par les ActiveReports d'exécution

Je ne peux pas trouver un moyen d'inclure les deux dans le projet. Est-il possible? Est-GAC la réponse?

Était-ce utile?

La solution

Création d' alias externes pour chaque assemblage aidera si vous avez des collisions de noms de type. Pour les collisions de noms de montage, jetez un oeil à ILMerge ; vous pouvez combiner tous les ensembles connexes ensemble. Vous souhaitez créer un ensemble de ActiveReports 2 qui réunit toutes ses assemblées nécessaires et une autre pour ActiveReports 6.

Autres conseils

GAC est une façon, mais la résolution Fusion a beaucoup de flexibilité dans ce qui pourrait suffire. Fusion sonde dans le BaseDirectory pour le nom de l'assemblage. [DLL | EXE]. Dans le cas contraire trouvé sondera BaseDirectory \ Nom [DLL | EXE]. \ Nom. [DLL | EXE]. Donc, vous pourriez être en mesure de sortir avec la création d'un dossier nommé ActiveReports.PdfExport.DLL dans votre dossier Bin et vider la version antérieure du fichier là-dedans.

Oui, il faut mettre à la fois dans GAC (c'est ce qu'il fait pour, dans le cas des assemblées de clients).

Mon idée:. Créer deux bibliothèques auxiliaires, chaque référence à l'assemblage appropriés, les enregistrer dans une sorte d'usine ou gestionnaire et un appel spécifique lorsque vous avez besoin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top