2016-07-14 10 views
0

Ich habe ein Projekt, das 2 NuGet-Abhängigkeiten verwendet: FreeSpire.Doc und FreeSpire.Xls, beide von der FreeSpire.Pdf-Bibliothek abhängig. Das Problem ist, dass sie abhängig von der Bibliothek mit unterschiedlicher Version sind. Und im laufenden Betrieb habe ich eine AusnahmeHinzufügen von Bibliotheken mit verschiedenen Versionen

fehlgeschlagen "3" von der Montage laden "Spire.Pdf, Version = 3.6.230.55040, Kultur neutral = PublicKeyToken = 663f351905198cb3"

Ist gibt es eine Möglichkeit, zwei Versionen der Bibliothek im Projekt zu haben?

Antwort

0

Soweit ich weiß, können Sie nicht zwei Versionen eines NuGet-Pakets im selben Projekt haben.

Wenn derjenige die älteren Version zeigt kann Arbeit mit der neueren Version, aber es muß eine hässliche Hack sein, wie zum Beispiel:

  • manuell die erforderlichen DLLs als Referenz hinzugefügt (Wenn es sich um ein Open-Source-Projekt handelt, können Sie es sogar selbst kompilieren.

  • Die Logik in zwei verschiedene Projekte einteilen und immer diejenige erstellen, die auf die neuere Version verweist, die auf die ältere Version verweist.

  • Wenn Sie die DLLs irgendwie in den GAC installieren können, können Sie möglicherweise beide Versionen nebeneinander ausführen.

+0

1. es ist nicht open source; 2. In diesem Fall überschreibt man noch den anderen; 3. Ich kann GAC nicht verwenden, da die Clickonce-Bereitstellung dies nicht unterstützt. –

+0

Versuchen Sie, zwei Projekte zu erstellen, eines für jedes Paket. Kompilieren Sie sie und nehmen Sie die Assemblys jedes Pakets aus jedem der Ausgabeordner, aber nehmen Sie die freigegebene Assembly aus dem Ausgabeordner des Projekts, das die neuere Version verwendet. Schließlich fügen Sie sie dem Hauptprojekt als reguläre Referenzen hinzu. Es ist ein Hack und Sie müssen die Assembly manuell aktualisieren, wenn neuere Versionen der Pakete veröffentlicht werden, aber es könnte funktionieren! –

Verwandte Themen