C# 使用从其他项目引用引用的tracelistener引用

C# 使用从其他项目引用引用的tracelistener引用,c#,enterprise-library,enterprise-library-5,tracelistener,C#,Enterprise Library,Enterprise Library 5,Tracelistener,我有一个项目结构,其中我们有一个被引用的项目,名为RefProject,用于记录日志。因此,我在该REF项目中调用了一个方法,它对企业库进行了WriteLog调用,并且在现有的企业库TraceListener中一切正常。所有企业库DLL都是从REF项目中引用的。一切正常,配置在web项目的web.config中完成,这里称为WebProject WebProject引用RefProject,但不引用EntLib DLL 下面是在web.config中配置的标准侦听器的示例 <add nam

我有一个项目结构,其中我们有一个被引用的项目,名为RefProject,用于记录日志。因此,我在该REF项目中调用了一个方法,它对企业库进行了WriteLog调用,并且在现有的企业库TraceListener中一切正常。所有企业库DLL都是从REF项目中引用的。一切正常,配置在web项目的web.config中完成,这里称为WebProject WebProject引用RefProject,但不引用EntLib DLL

下面是在web.config中配置的标准侦听器的示例

<add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        fileName="C:\Logfiles\logger.log"
        footer="" formatter="Text Formatter" header="" rollFileExistsBehavior="Increment"
        rollInterval="Midnight" filter="Verbose" />
现在,我在一个单独的日志项目中创建了一个定制的tracelistener,这个项目称为日志项目。如果WebProject引用了日志项目,那么一切都会正常工作,tracelistener也会正常工作。如果RefProject引用日志项目,那么当它试图写入日志文件时,会出现异常,表示找不到该类型

理想情况下,我不希望所有客户端应用程序都需要保留此引用。我希望这一切都由REF项目负责。RefProject已经通过其他EntLib默认侦听器处理了这个问题。我不明白为什么WebProject需要将这个新项目引用到logger,而所有其他EntLib组件都直接由RefProject而不是WebProject引用

有什么想法吗

<add listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        databaseConfig="ExceptionsDatabase" writeLogStoredProcName="WriteLog"
        addCategoryStoredProcName="AddCategory" type="Logging.CustomExceptionTrackerTraceListener, GB.Logging, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
        traceOutputOptions="LogicalOperationStack, Callstack" name="Database Exception Tracking Listener"
        formatter="Text Formatter" filter="Error"/>

请尝试终止Web服务器进程,清理并重建我们的项目,然后再次运行F5。

您是否已将RefProject中的日志记录引用的CopyLocal设置为True?是。已将其设置为“复制本地”。已解决。所有的设置都是正确的,但是当我构建时,它没有正确地将文件输出到bin。我只需要删除文件夹,做一个很好的旧方式清理+重建,然后一切都按预期进行。呸: