2016-06-02 11 views
1

Ich habe eine (funktionierende) Appender, die in einem anderen Projekt der gleichen Lösung befindet.Benutzerdefinierte Appender in anderen Projekt der gleichen Lösung

kann ich auf diese Appender von einem weiteren Projekt innerhalb dieser Lösung, aber alle andere fail einen Fehler im Protokoll angezeigt wird:

log4net: FEHLER kann nicht erstellt Appender [zu] vom Typ [my.Backend .AzureAppender].

Der gemeldete Fehler folgt. System.TypeLoadException: Der Typ [my.Backend.AzureAppender] konnte nicht geladen werden. Versuchte Montage [log4net, Version = 1.2.15.0, Culture = neutral, PublicKeyToken = 669e0ddf0bb1aa2a] und alle geladenen Baugruppen

Verweise auf my.Backend existieren.

Die Appender Inhalt folgt:

<appender name="AzureAppender" type="my.Backend.AzureAppender"> 
    <FileName>web.log</FileName> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%-5p %d %5rms [%t] %-22.22c{1} %-18.18M - %m%n" /> 
    </layout> 
</appender> 

Antwort

4

Wenn Ihre DLL nicht bereits geladen ist, müssen Sie möglicherweise Ihren Typ ändern, um den Namen der DLL einzubeziehen.

<appender name="AzureAppender" type="my.Backend.AzureAppender, mydllName"> 

Dies sollte log4net sagen die DLL namens mydllName.dll und suchen Sie dann nach der Art genannt my.Backend.AzureAppender im Inneren, die zu laden.

Wenn das fehlschlägt, können Sie versuchen, den vollständigen AssemblyQualifiedName für den Typ hinzuzufügen.

+0

Hinzufügen der Dll-Name hat den Trick. Thx –

+0

Ich habe versucht, Dll-Bindung einzurichten, nach DLL-Bindungsprobleme (Fusion-Protokoll) zu suchen, ... Aligned Web-Projekt und Appender-Projekt zur Verwendung der gleichen Version von log4nett.dll + Hinzufügen der Dll-Datei Name behoben. Danke! – evgenyl

0

Sie haben die DLL zu implementieren, die die my.Backend.AzureAppender in Ihren Ordner ist Ihr Projekt enthält. Ich bin sicher, dass es fehlt. Der Grund dafür ist, dass es in Ihrem Code keine direkten Verweise auf diese DLL gibt. Daher wird er nicht in Ihr Ausgabebildverzeichnis kopiert.

+0

Ich habe Verweise auf my.Backend hinzugefügt (und die DLL ist auch im bin-Verzeichnis) –