2017-12-28 19 views
0

CodeDom을 사용하여 라이브러리로 컴파일되는 코드가 있습니다. 이 클래스 중 일부에서는 log4net 문을 추가하고 싶습니다.CodeDom으로 생성 된 프로젝트에서 log4net 참조가 누락되었습니다.

  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에 대한 항목을 포함하고 있지만 결과 프로젝트에, 그것은 누락되었습니다

된 CodeDom을 사용하여 생성 될 프로젝트에 대한 참조를 추가 우리는이 있습니다. log4net.dll은 m_Settings.BinPath에 있으며 references에 추가하면 예외가 throw되지 않습니다.

프로젝트는 내가 보통의 오류 메시지가 얻을 생성되는 완료되면 :

형식 또는 네임 스페이스 이름 'log4net은'을 (를) 찾을 수 없습니다

는 (? 당신은 using 지시문 또는 어셈블리 참조가)

수동으로 추가하면 모두 정상이지만 생성해야합니다.

대상으로하는 .Net 프레임 워크는 4.6이지만 log4net 버전은 1.2.13.0입니다. 그러나 나머지 솔루션에서는 이것이 문제가되지 않습니다.

references 개체의 log4net 참조가 삭제되는 이유는 무엇입니까?

답변

0

코드에 실제로 참조가 생성되는 위치가 두 곳 있습니다. 위의 경우는 첫 번째 시나리오 (일부 실행 경로는 유일한 시나리오) 였지만 log4net 참조가 추가되지 않은 또 다른 장소도 존재하며 최종 스키마에서 삭제 된 것처럼 보입니다. 그래서 두 곳에서 log4net 참조를 추가 했으므로 이제는 잘 작동합니다.