Prism + Log4Net构建错误:“无法解析对程序集log4net的依赖”

时间:2013-08-09 21:08:48

标签: reflection log4net prism

我正在尝试在Prism应用程序中添加log4net支持。不幸的是,每个棱镜模块都会出现以下错误:

  

错误101未知的构建错误,'无法解析对程序集的依赖关系'log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 1b44e1d426115821'因为它尚未预加载。使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关的程序集。 [PRISM MODULE 1项目名称]

     

错误101未知的构建错误,'无法解析对程序集的依赖关系'log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 1b44e1d426115821'因为它尚未预加载。使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关的程序集。 [PRISM MODULE 2 PROJECT NAME]

     等等......

我将记录器设置如下:

  1. 我将log4net程序集引用添加到主应用程序和引导程序。
  2. 我将log4net配置添加到app.config文件中。
  3. 我将[assembly:log4net.Config.XmlConfigurator(Watch = true)]添加到App.xaml.cs文件中。
  4. 我创建了一个记录器,实现了ILoggerFacade,并在Bootstrapper中覆盖了CreateLogger(),使其返回我的自定义记录器。
  5. 就是这样。 如果我尝试构建,它会因为上面提到的每个棱镜模块项目的错误而失败。 我找到的唯一工作就是手动将log4net引用添加到每个prism模块项目中,我认为这样可以破坏ILoggerFacade与实际实现的依赖关系之间的抽象。

    错误建议使用ReflectionOnlyAssemblyResolve事件,但我不知道它在这里有什么帮助,因为它是构建错误,而不是运行时。

    有什么建议吗? : - )

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题,每个模块都引用了引导程序,这是错误的,我删除了依赖项和VOILA,修复了!