Hallo Leute,
ist folgende Konstellation irgendwie umsetzbar?
1.) Windows-Forms-Projekt verweist auf DLLs der Version 402 des Drittanbieters X.
2.) Das DLL-Projekt "Scheduler" verweist auf auf DLLs der Version 705 des Drittanbieters X (die DLLs heißen gleich).
3.) Ein UserControl des DLL-Projekts "Scheduler" soll im Windows-Forms-Projekt verwendet werden.
Kann ich irgendwie dafür sorgen, dass die DLL "Scheduler" immer aus einem separaten Unterverzeichnis gezogen wird, damit es nicht zu Problemen/Konflikten mit den DLLs des Drittanbieters kommt, die sich in der Version aber nicht im Namen unterscheiden?
Vielen Dank!
Gruß fungi
Wenn ich dich richtig verstehe, dann brauchst du ein binding redirect.
Wenn du nach "c# Same DLL different Version" suchst bin ich sicher, dass du entsprechende Treffer findest, wie das geht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Zusätzlich kannst Du Dir noch das Event AssemblyResolve anschauen (AppDomain.CurrentDomain.AssemblyResolve). Darüber hab' ich so einen Fall mal gelöst.
AssemblyResolve kann man auch bequem über die App.Config setzen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo fungi35
Ich musste mich auch mit diesem Thema befassen und habe keine zufriedenstellende Lösung gefunden.
Meine Empfehlung: Versuche nicht die zwei verschiedenen Versionen der DLL zu verwenden, sondern upgrade dein Forms-Project, so dass es auch die neuere Version aus dem Scheduler verwendet.
Damit wirdst du dir viel Zeit und Mühe sparen.
Gruß
Alf