我有一个引用到我的项目的dll,其中包含使用TraceSource的跟踪,但它不起作用。我在 dll 项目中的代码是这样的:
private static readonly TraceSource ts = new TraceSource("DataSource");
...
ts.TraceInformation(string.Format("Info: {0}", mess));
在应用程序项目(我导入 DLL 的位置(中,应用程序配置:
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="MyListener" />
<remove name="Default" />
</listeners>
</trace>
<sources>
<source name="DataSource" switchValue="All">
<listeners>
<remove name="Default"/>
<add name="MyListener"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="MyListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\tempDefaultWriterOutput.log" />
</sharedListeners>
</system.diagnostics>
当我将引用的项目与跟踪一起使用时,一切正常,但是当我导入 dll 时,跟踪不起作用。配置有问题吗?
我忘记了我的 DLL 项目使用的是 Nuget 配置(而不是发布(。 :(我将项目属性中的 TRACE 常量设置为 Nuget 配置,它可以工作。