1

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

错误 101 未知的构建错误,“无法解析对程序集 'log4net,版本 = 1.2.10.0,文化 = 中性,PublicKeyToken = 1b44e1d426115821'的依赖关系”,因为它尚未预加载。使用 ReflectionOnly API 时,必须通过 ReflectionOnlyAssemblyResolve 事件预加载或按需加载依赖程序集。[棱镜模块 1 项目名称]

错误 101 未知的构建错误,“无法解析对程序集 'log4net,版本 = 1.2.10.0,文化 = 中性,PublicKeyToken = 1b44e1d426115821'的依赖关系”,因为它尚未预加载。使用 ReflectionOnly API 时,必须通过 ReflectionOnlyAssemblyResolve 事件预加载或按需加载依赖程序集。[棱镜模块 2 项目名称]

等等...

我将记录器设置如下:

  1. 我添加了对主应用程序和引导程序的 log4net 程序集引用。
  2. 我将 log4net 配置添加到 app.config 文件中。
  3. 我将 [assembly: log4net.Config.XmlConfigurator(Watch = true)] 添加到 App.xaml.cs 文件中。
  4. 我创建了一个实现 ILoggerFacade 的记录器,并在 Bootstrapper 中覆盖了 CreateLogger() 以使其返回我的自定义记录器。

而已。如果我尝试构建,它会因每个 prism 模块项目的上述错误而失败。我发现的唯一解决方法是手动将 log4net 引用添加到每个 prism 模块项目中,我认为这有点破坏了 ILoggerFacade 和实际实现的依赖关系之间的抽象。

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

有什么建议吗?:-)

4

1 回答 1

0

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

于 2013-08-09T21:27:43.320 回答