C# 公共类库中的Serilog设置-ASP.NET Core 2

C# 公共类库中的Serilog设置-ASP.NET Core 2,c#,asp.net-core,serilog,C#,Asp.net Core,Serilog,我有几个ASP.NET Core 2应用程序,我想为它们设置带有各种接收器的Serilog。 为了不必在每个项目中都设置Serilog,我在一个单独的类库中有一个单独的类BaseProgram,我的其他程序从中继承(我省略了brivety的一些代码) 我的程序类看起来像: public class Program : BaseProgram { public static void Main(string args[]) { MainWrapper(() =>

我有几个ASP.NET Core 2应用程序,我想为它们设置带有各种接收器的Serilog。 为了不必在每个项目中都设置Serilog,我在一个单独的类库中有一个单独的类BaseProgram,我的其他程序从中继承(我省略了brivety的一些代码)

我的程序类看起来像:

public class Program : BaseProgram
{
    public static void Main(string args[])
    {
        MainWrapper(() => BuildWebHost(args).Run());
    }
}
现在,我的问题是,如果我只在公共库(滚动文件Appender)中添加Serilog接收器,并在appsettings.json中添加该接收器的配置,则不会加载该接收器

另一方面,如果我将滚动文件Appender添加到ASP.NET核心项目中(并且不做任何更改),那么一切都会按预期进行。 我注意到,在第一种情况下,程序集Serilog.Sinks.File和Serilog.Sinks.RollingFile不会复制到ASP.NET核心应用程序的bin文件夹中。我已经强制加载了这些程序集,但仍然不起作用

现在,我已经在类库中以编程方式设置了滚动文件appender,它运行良好。我还可以在ASP.NET核心应用程序中添加额外的接收器,它们仍然可以工作

有什么想法吗? 谢谢

public class Program : BaseProgram
{
    public static void Main(string args[])
    {
        MainWrapper(() => BuildWebHost(args).Run());
    }
}