Frage

Ich habe ein Projekt, wo ich muss gleichzeitig Berichte in Active gebaut verwenden 2 und Active 6. Insgesamt funktioniert es in Ordnung, aber einige der Helfer Baugruppen verwenden den gleichen Namen. Zum Beispiel in der Lage sein zu PDF exportieren, beide Versionen verwenden eine Assembly namens ActiveReports.PdfExport.dll. Die entsprechenden Baugruppen sind unterschiedlich, natürlich.

Beachten Sie, dass ich die ActiveReports.PdfExport.dll nicht direkt zugreifen -. Dies durch die Active behandelt wird Runtime

Ich kann nicht einen Weg umfassen beide in das Projekt. Gibt es einen Weg? Ist GAC die Antwort?

War es hilfreich?

Lösung

Erstellen von separaten externen Aliase für jede Montage hilft, wenn Sie Typnamen Kollisionen haben. Für die Montage Namenskollisionen, werfen Sie einen Blick auf ILMerge ; Sie können alle zugehörigen Baugruppen zusammen kombinieren. Sie würden eine Baugruppe für Activereports 2, dass 6 für Activereports vereint alle seine erforderlichen Baugruppen und andere erstellen.

Andere Tipps

GAC ist eine Möglichkeit, aber Fusion Auflösung hat viel Flexibilität darin, die ausreichen könnten. Fusion in der Basedirectory für den Namen der Assembly sondieren wird. [DLL | EXE]. Wenn nicht gefunden wird es Basedirectory \ Name sondieren [DLL | EXE]. \ Name. [DLL | EXE]. So können Sie mit dem Erstellen Sie einen Ordner namens ActiveReports.PdfExport.DLL in Ihrem Ordner Bin und Dumping die ältere Version der Datei drin sein können wegkommen könnten.

Ja, müssen Sie beide in GAC setzen (das ist, was es bei Client-Baugruppen für gemacht wird).

Meine Idee:. Erstellen zwei Bibliotheken-Helfer, jede Referenzanordnung zu veranschlagen, registrieren sie in eine Art Fabrik oder Manager und Call-spezifische, wenn Sie benötigen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top