我在尝试在新线程中使用 Microsoft Enterprise Library Logging 时遇到问题。这是我用来启动线程的代码:
Thread cleanupThread = new Thread(new ThreadStart(DirectoryCleanup));
cleanupThread.Start();
在 DirectoryCleanup 方法中,以下行会引发错误:
Logger.Write(ex.Message, "General", 100, 0,
System.Diagnostics.TraceEventType.Critical);
这是我得到的错误:
The type initializer for 'Microsoft.Practices.EnterpriseLibrary.Logging.Logger'
threw an exception.
这是内部异常:
{"Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Common,
Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The system cannot find the file specified.":"
Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"}
记录器在程序的主线程中工作得很好。它只有新线程有问题。我花了很多时间搜索,但似乎找不到答案。谢谢你的帮助!
更新:
我尝试使用以下代码使用线程池:
Task.Factory.StartNew(DirectoryCleanup);
它产生了与上面相同的错误。