Ich arbeite an einem Projekt, das auf DLLs von einem anderen Produkt verweist. Das Produkt hat jedes Jahr eine Version und die Assembly-Version ändert sich für jede Version, obwohl die Methoden gleich bleiben. Wenn ich ein Build meines Projekts für 2010 ausführe, wenn ich es für 2009 versuche und ausführe, wird ein Fehler ausgegeben, weil es von einer anderen Version abhängig ist. Gibt es einen Weg dazu?
Wenn Sie auf ein Problem bei runtime verweisen, nachdem Sie Versionen Ihrer Assembly ausgetauscht haben, ohne eine Neuerstellung des Programms durchzuführen, das auf Ihre neu erstellte Assembly verweist, möchten Sie Verwenden Sie eine <bindingRedirect>
-Direktive für die App.config Ihres Programms (oder Web.config, wenn Sie von einer Website sprechen).
bindingRedirect
wird verwendet, um .NET Framework anzuweisen, dass es in Ordnung ist, eine Version einer Assembly anderen als die zu verwenden, für die die Anwendung ursprünglich kompiliert wurde. Standardmäßig möchte die CLR die gleiche Version einer DLL sehen, auf die Ihre Anwendung während des Builds verwiesen hat. Andernfalls wird eine Ausnahme ausgelöst.
Es ist möglich, verschiedene .NET-Versionen der Assembly in app.config zuzuordnen, die Sie in den Stammordner der Anwendung einfügen
%Vor%Dies ist die Lösung, wenn die Assembly, auf die Sie verwiesen haben, Referenzen auf eine andere spezifische Bibliotheksversion enthält.
Es passiert, wenn zum Zeitpunkt der Kompilierung "Spezifische Version" auf "Wahr" gesetzt ist. Um dieses Problem zu vermeiden, sollte es falsch sein.
Tags und Links c# assemblies