C# 同一解决方案的其他项目中的自定义追加器

C# 同一解决方案的其他项目中的自定义追加器,c#,log4net,log4net-appender,C#,Log4net,Log4net Appender,我有一个(工作)Appender,它位于同一解决方案的不同项目中 我可以从该解决方案中的另一个项目访问该Appender,但所有其他项目都无法在日志中显示错误: log4net:错误无法创建[my.Backend.AzureAppender]类型的Appender[AzureAppender] 报告的错误如下。System.TypeLoadException:无法加载类型[my.Backend.AzureAppender]。已尝试程序集[log4net,版本=1.2.15.0,区域性=中性,Pu

我有一个(工作)Appender,它位于同一解决方案的不同项目中

我可以从该解决方案中的另一个项目访问该Appender,但所有其他项目都无法在日志中显示错误:

log4net:错误无法创建[my.Backend.AzureAppender]类型的Appender[AzureAppender]

报告的错误如下。System.TypeLoadException:无法加载类型[my.Backend.AzureAppender]。已尝试程序集[log4net,版本=1.2.15.0,区域性=中性,PublicKeyToken=669e0ddf0bb1aa2a]和所有加载的程序集

存在对my.Backend的引用

附录内容如下:

<appender name="AzureAppender" type="my.Backend.AzureAppender">
  <FileName>web.log</FileName>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %d %5rms [%t] %-22.22c{1} %-18.18M - %m%n" />
  </layout>
</appender>

web.log

您必须将包含my.Backend.AzureAppender的dll部署到项目的bin文件夹中。我肯定它不见了。原因是代码中没有对此dll的直接引用,因此不会将其复制到输出bin dir

您必须将包含my.Backend.AzureAppender的dll部署到项目的bin文件夹中。我肯定它不见了。原因是代码中没有对此dll的直接引用,因此不会将其复制到输出bin dir

如果尚未加载dll,则可能需要更改类型以包含dll的名称

<appender name="AzureAppender" type="my.Backend.AzureAppender, mydllName">

这应该告诉log4net加载名为mydllName.dll的dll,然后在其中查找名为my.Backend.AzureAppender的类型


如果失败,您可以尝试为该类型添加完整的AssemblyQualifiedName。

如果尚未加载dll,则可能需要更改类型以包含dll的名称

<appender name="AzureAppender" type="my.Backend.AzureAppender, mydllName">

这应该告诉log4net加载名为mydllName.dll的dll,然后在其中查找名为my.Backend.AzureAppender的类型


如果失败,您可以尝试添加该类型的完整AssemblyQualifiedName。

我添加了对.Backend的引用(并且.dll也在bin目录中)我添加了对.Backend的引用(并且.dll也在bin目录中)我确实尝试设置dll绑定,以查找dll绑定问题(融合日志)。。。对齐web项目和appender项目,使用相同版本的log4nett.dll+添加dll文件名,修复了此问题。谢谢我确实尝试设置dll绑定,以查找dll绑定问题(融合日志)。。。对齐web项目和appender项目,使用相同版本的log4nett.dll+添加dll文件名,修复了此问题。谢谢