我正在使用 NuGet 管理 C# 项目的构建以获取 Common.Logging.Log4Net。从 Visual Studio 2010 运行时,单元测试全部通过,没有错误,但是当我使用 MSTest 从命令行运行时(因此当 TeamCity 执行相同操作时),当单元测试组织一个执行此操作的类时,我会失败:
private static readonly ILog Log = LogManager.GetCurrentClassLogger();
错误是:
测试方法 MyProject.Tests.Unit.BusinessDateBuilderTest.CreateElementalTest 抛出异常:System.TypeInitializationException:“MyProject.Common.Library”的类型初始化程序抛出异常。---> System.TypeInitializationException:'MyProject.Common.Initialization.Impl.InitializationLoaderImpl' 的类型初始化程序引发了异常。---> Common.Logging.ConfigurationException:无法从配置部分“common/logging”获取 Common.Logging 的配置。---> System.Configuration.ConfigurationErrorsException:为 common/logging 创建配置节处理程序时出错:无法创建类型“Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter,Common.Logging.Log4net”(C:\Subversion\Project\ MyProject.Tests。Unit\bin\Debug\TestResults\rac_DWM300619 2012-10-30 11_58_34\Out\MyProject.Tests.Unit.dll.config 第 168 行) ---> Common.Logging.ConfigurationException: 无法创建类型 'Common.Logging.Log4Net .Log4NetLoggerFactoryAdapter,Common.Logging.Log4net' ---> System.IO.FileNotFoundException:无法加载文件或程序集“Common.Logging.Log4net”或其依赖项之一。该系统找不到指定的文件。
我正在使用以下 NuGet 依赖项:
Common.Logging.2.1.1(DLL 版本为 2.1.1.0) Common.Logging.Log4Net.2.0.1(DLL 版本为 2.0.0.0) log4net.1.2.10(DLL 版本为 1.2.10)
我注意到 Common.Logging.Log4net.dll 没有复制到 testresults 输出文件夹 - 这是问题吗?如果是这样,我该如何解决这个问题?