Ich habe ein Wpf .net 4.0 C # -Projekt, das ich von Log4Net migrieren möchte, um NLog als Protokollierungsbibliothek hinter der Common.Logging-Fassade zu verwenden. Ich hatte erwartet, dass dies eine leichte Aufgabe ist, aber Sie wissen, was sie sagen, Nichts ist jemals einfach.
Ich habe NuGet verwendet, um:
In der Datei app.config habe ich:
%Vor%... und ...
%Vor%Wenn ich die Anwendung starte, bekomme ich eine Fehlermeldung mit
'Der Aufruf des Konstruktors für den Typ' NameSpace.Shell.AppBootstrapper ', der den angegebenen Bindungseinschränkungen entspricht, hat eine Ausnahme ausgelöst.' Zeilennummer '8' und Zeilenposition '18'.
Die innere Ausnahme ist:
{"Kann einen oder mehrere der angeforderten Typen nicht laden. Abrufen des LoaderExceptions-Eigenschaft für weitere Informationen. "}
Die Loader-Ausnahme, es gibt nur eine, ist:
{"NLog.TargetWithLayout 'aus Baugruppe NLog konnte nicht geladen werden, Version = 2.0.1.0, Kultur = neutral, PublicKeyToken = 5120e14c03d0593c '. ":" NLog.TargetWithLayout "}
Hat jemand dieses Problem überwunden oder muss er arbeiten, um NLog working with Common.Logging
zu bekommen?
Im Interesse, nicht zu lange eine Frage zu posten, habe ich die NLog.config
Datei nicht eingeschlossen, aber ich kann, wenn es vorteilhaft wäre.
Nachdem ich mich viel umgesehen habe, nachdem ich diese Frage gestellt habe, und ich habe viele Suchen gemacht, bevor ich überhaupt diese Frage gestellt habe. Ich habe versucht, verschiedene Dinge auszuprobieren und hoffe, dass sie funktionieren könnten.
Was ich gefunden habe, war, dass das Common.Logging.NLog.NLogLoggerFactoryAdapter
, das ich verwendete, von der Common.Logging.Nlog
dll kam und dass dll eine Referenz zu NLog 1.0.0.505
hat, die die alte Position für die NLog.TargetWithLayout
-Klasse verwendet.
Ich habe das Paket Common.Logging.Nlog
mit NuGet entfernt und den Verweis in der app.config-Datei in
Dies verwendet dann die korrekte Klasse, die im Paket NLog 2.0.1.2
gefunden wird, und erlaubt NLog und die Anwendung zum Hochfahren.
Ich hoffe, das hilft jedem anderen, der über dieses Problem stolpert. Ich konnte niemanden finden, der dokumentierte, wie man damit umgeht.
Wahrscheinlich haben Sie das Common.Logging.NLog NuGet-Paket anstelle von Common.Logging.Nlog20 installiert. Überprüfen Sie Ihre Nugget-Referenz, die aufgrund von Version 2 von CL und Version 2 von NLog verwechselt werden kann. Was Sie anscheinend haben, ist Version 2 von CL, aber NLogLoggerFactoryAdapter für NLog Version 1.
Tags und Links c# nlog common.logging