从使用CodeDom创建的项目中删除了log4net引用

时间:2017-12-28 08:27:59

标签: c# log4net

我们有使用CodeDom编译到库中的代码。在其中一些类中,我想添加log4net语句。

当添加对将使用CodeDom创建的项目的引用时,我们有:

            references.Add("mscorlib.dll");
            references.Add("System.dll");
            references.Add("System.Data.dll");
            references.Add("System.Xml.dll");
            references.Add("System.Core.dll");
            references.Add("System.Data.DataSetExtensions.dll");
            references.Add("System.Data.Linq.dll");
            references.Add(Path.Combine(m_Settings.BinPath, "log4net.dll"));
            references.Add(Path.Combine(m_Settings.Engine.EngineBinPath, "Engines.Calculation.dll"));

当我调试时,references包含log4net的一个条目,但在生成的项目中,它丢失了。 log4net.dll位于m_Settings.BinPath中,添加到references时不会抛出异常。

当项目完成创建时,我收到通常的错误消息:

  

类型或命名空间名称' log4net'找不到(你错过了使用指令或汇编引用吗?)

如果我手动添加它一切都很好,但需要生成它。

目标的.Net框架是4.6,但log4net版本是1.2.13.0。但是,在其他解决方案中,这似乎不是问题。

为什么它会从references对象中删除log4net引用?

1 个答案:

答案 0 :(得分:0)

代码中实际上有两个地方可以创建引用。上面的情况是第一种情况(并且有一些执行路径是唯一的情况),但是另一个地方也存在没有添加log4net引用,这就是它在最终方案中似乎被丢弃的方式。 所以我在两个地方添加了log4net参考,现在工作正常。