LogManager.configuration ist null

8

Ich habe NLog mit nugget zu einem Projekt hinzugefügt und NLog.config hinzugefügt. Ich führe den Debugger aus und bekomme ein NullReferenceException aufgrund der Tatsache LogManager.Configuration ist null:

LogManager.Configuration.AddTarget("sentinel", sentinalTarget);

Diese Codezeile wird in einem statischen Konstruktor ausgeführt.

  • NLog.config befindet sich im Projektstamm neben der web.config.
  • Dies tritt im Visual Studio-Debugger
  • auf
  • NLog.config-Eigenschaft "In Ausgabeverzeichnis kopieren"="Immer kopieren"
  • Ich habe NLog.config geweckt, throwExceptions="true" und zur Laufzeit LogManager.ThrowExceptions war false, also vermute ich ein Problem mit der Konfiguration
  • Versucht, die Ziele mit dem Namen "viewer", "DbWin" und den zugehörigen Regeln zu entfernen

NLog.config Inhalte:

%Vor%

Aktualisieren
Ich habe die Quelle entdeckt. Das Problem tritt nur beim Ausführen von Komponententests auf. Wenn Sie die vollständige Anwendung (Web-App) ausführen, ist das Problem nicht vorhanden. Ich habe die Datei NLog.config in das Home-Verzeichnis des Komponententests kopiert. Das Problem ist immer noch vorhanden, wenn Unit-Tests ausgeführt werden.

    
P.Brian.Mackey 30.04.2014, 13:24
quelle

1 Antwort

9
  • Kopieren Sie NLog.config in den obersten Ordner "Projekte testen"
  • Fügen Sie DeploymentItemAttribute zu Testklassen hinzu ( weitere Informationen ) :

:

%Vor%

Alternativ können Sie die Konfiguration programmgesteuert laden:

LogManager.Configuration = new XmlLoggingConfiguration("c:\path\to\NLog.config")

    
P.Brian.Mackey 30.04.2014, 14:27
quelle

Tags und Links