Wir haben ein asp.net 4.0-Projekt, das einige Frameworks verwendet, die von log4net Version 1.2.10.0 abhängig sind. Heute habe ich versucht, ein neues Framework aufzunehmen, das von log4net Version 1.2.11.0 abhängig ist. Seitdem stecke ich fest:
log4net 1.2.10.0 hat publickeytoken = 1b44e1d426115821
log4net 1.2.11.0 hat publickeytoken = 669e0ddf0bb1aa2a
Da diese unterschiedlich sind, kann ich weder Assembly-Weiterleitungen (damit alle Frameworks dieselbe Version von log4net verwenden) noch Codebasis (damit nur das neue Framework Version 1.2.11.0 verwendet) über das Laufzeitelement in web.config verwenden.
Welche Möglichkeiten habe ich hier?
(und warum der Signalton log4net immer wieder publickeytokens zwischen Versionen ändert, da ich verstehe, dass ein verlorener Schlüssel der Grund für den Wechsel zwischen Version 1.2.9.0 und 1.2.10.0 war, haben sie den Schlüssel noch einmal verloren? Ich werde meine Dropbox freiwillig zur Verfügung stellen um es sicher zu halten, wenn sie es brauchen ...)
Bearbeiten: Ok, also hatten die log4net-Leute anscheinend die Idee, dass das Freigeben mit zwei Schlüsseln eine gute Idee ist, aber das bedeutet, dass jedes Framework, das Sie verwenden, sich darauf einigen muss, welche der beiden Varianten sie bevorzugen, oder diese Frameworks können nicht funktionieren nebeneinander in der gleichen Appdomain. Bin ich der einzige, der dies für eine schreckliche Idee hält? Wenn jeder das tun würde, würde alles zusammenbrechen, oder?
Edit2: Wie bereits erwähnt, verwende ich in meinem Geschäftscode nicht log4net, sondern mehrere Frameworks, die von 1.2.10.0 abhängen. Das Problem trat auf, als ich versuchte, ein neues Framework zu verwenden, das von 1.2.11.0 abhing (neuer Schlüssel) ), daher trifft die Antwort von Stefans nicht zu, da das neue Framework den neuen Schlüssel erwartet, nicht den alten