从内部的nuget库包中获取Nlog

本文关键字:包中 获取 Nlog nuget 内部 | 更新日期: 2023-09-27 18:06:47

我写了一个c#库项目,并添加了nlog。我正在使用日志文件。

然后我使用nuget包资源管理器为这个库创建了一个nuget包,其中包含以下文件:

-lib
    --NLog.config
    --NLog.dll
    --Nlog.xml
    --MyLibrary.dll
    --MyLibrary.dll.config

我已经安装了这个nuget包到一个ASP。. NET web窗体项目。我已经在这个web表单项目上安装了NLog,并确认日志记录在这个项目中正常工作。

我的问题是我没有看到通过nuget安装的库项目的任何日志记录消息。web表单项目层次结构如下:

-WebFormsProject
    --Default.aspx
    --logs.log
    --Default.aspx
    --Nlog.config
    --bin
        ---NLog.dll
        ---Nlog.xml
        ---MyLibrary.dll
        ---WebFormsProject.dll

我错过了什么从我的图书馆日志工作在WebFormsProject?

从内部的nuget库包中获取Nlog

很可能您在日志中犯了一些错误。配置but…

请检查您正在使用的NLog.dll版本是否相同(因此,您构建MyLibrary.dll的版本和您的WebFormsProject)。

请注意,在NLog 3.0版本中,对dotnetfx20的支持已经被删除。现在需要dotnetfx35来使用最新的NLog。

如果这对您没有帮助,请尝试另一种方法来检测错误。例如,创建一个简单的控制台应用程序,在其中使用新创建的nuget包。你是在那里工作的吗?

另一件要记住的事情是,如果您有一个具有日志记录功能的应用程序Foo和一个具有日志记录功能的dll Bar,并且Foo使用Bar(就像它通常在这个例子中所做的那样)。

 + Foo
 |  |   // some console app
 |  |   // references and uses bar
 |   --- Foo.exe
 |   --- NLog.config
 |  
 +--+ Bar
    |   // This is your dll
    |   // it also tries to be cool and log stuff
     --- Bar.dll
     --- NLog.config

当你编译并运行这个时,Foo的NLog配置将被使用,而Bar的配置将不做任何事情(它不会被复制,因为Foo已经有一个)。