【发布时间】:2014-10-02 02:00:38
【问题描述】:
我正在尝试使用 NuGet 包资源管理器将 C# 库发布到 NuGet。该库使用 NLog 进行日志记录。我的本地版本按预期工作。
我可以成功上传然后下载库,但是当我尝试使用从 NuGet 下载的版本时,我得到一个NullReferenceException。进一步的实验表明这是由LogManager.Configuration 是null 引起的。
这是我尝试使用LogManager.Configuration的地方:
var logger = LogManager.GetLogger("MyLibraryName");
var logTarget = new ColoredConsoleTarget();
var loggingRule = new LoggingRule("*", LogLevel.Info, logTarget);
logTarget.Layout = "${longdate} ${level} ${logger}: ${message} ${exception:format=tostring}";
LogManager.Configuration.LoggingRules.Add(loggingRule); // exception thrown here
我的库的本地版本似乎正在自动使用我的 NLog.config 文件,但下载的版本却没有。
在 NuGet 包资源管理器中,我的“包内容”如下所示:
- lib
- net45
- NLog.config
- MyLibrary.dll
我尝试按照 NLog wiki (https://github.com/nlog/NLog/wiki/Configuration-file) 的建议将 NLog.config 重命名为 nlog.dll.nlog。这并没有解决问题。
如何阻止 LogManager.Configuration 为空?
【问题讨论】:
-
您是否在 nuget 清单中包含 nlog.config 文件?