2013-08-09 1 views
0

프리즘 응용 프로그램에 log4net 지원을 추가하려고합니다. 불행하게도 나는 각 프리즘 모듈에 대한 다음과 같은 오류가 발생합니다 :프리즘 + Log4Net 빌드 오류 : "어셈블리 log4net에 대한 종속성을 해결할 수 없습니다"

오류 101 알 수없는 빌드 오류를 log4net, 버전 = 1.2.10.0 '어셈블리에 대한 종속성을 확인할 수 없습니다', PublicKeyToken = 1b44e1d426115821 '가되지 않았기 때문에 문화 = 중립 미리로드되었습니다. ReflectionOnly API를 사용할 때 종속 어셈블리는 미리로드되거나 ReflectionOnlyAssemblyResolve 이벤트를 통해 필요할 때로드되어야합니다. ' [PRISM MODULE 1 PROJECT NAME]

오류 101 'log4net, 버전 = 1.2.10.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821'어셈블리에 대한 종속성을 미리 확인할 수 없으므로 알 수없는 빌드 오류가 발생합니다. ReflectionOnly API를 사용할 때 종속 어셈블리는 미리로드되거나 ReflectionOnlyAssemblyResolve 이벤트를 통해 필요할 때로드되어야합니다. ' [PRISM MODULE 2 프로젝트 이름]

요법 ...

I는 다음과 같이 로거를 설정 :

  1. 는 I 메인 애플리케이션과 부트 스트랩 모두 log4net 어셈블리 참조했다.
  2. app.config 파일에 log4net 구성을 추가했습니다.
  3. [assembly : log4net.Config.XmlConfigurator (Watch = true)]을 App.xaml.cs 파일에 추가했습니다.
  4. ILoggerFacade를 구현하는 로거를 생성하고 Bootstrapper에서 CreateLogger()를 덮어 쓰면 내 사용자 정의 로거가 반환됩니다.

그게 전부입니다. 빌드하려고하면 위의 각 프리즘 모듈 프로젝트에 대한 오류로 실패합니다. 내가 발견 한 유일한 해결 방법은 수동으로 각 프리즘 모듈 프로젝트에 log4net 참조를 추가하는 것이 었습니다. ILOGgerFacade와 실제 구현의 의존성 사이의 추상화를 물리 칠 수있는 종류라고 생각합니다.

오류가 발생하면 ReflectionOnlyAssemblyResolve 이벤트를 사용하는 것이 좋지만 런타임이 아닌 빌드 오류이므로 여기에서 도움이 될 수있는 방법은 없습니다.

어떤 제안? :-)

답변

0

좋아, 내가 발견 한 문제는, 각 모듈은 부트 스트 래퍼를 참조하고 있었다. 나는 틀린 것이고, 나는 그 의존성과 VOILA를 제거했다.

관련 문제