AddSingleton 不接受 AddSerilog

AddSingleton won't accept AddSerilog

我遇到了一个问题,我正在尝试编写一个更智能的控制台应用程序,并提供可用的日志记录和配置。

这是我目前拥有的:

namespace Client
{
    public class Program
    {
        public static IConfigurationRoot Configuration;

        private static int Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                        .WriteTo.Console(Serilog.Events.LogEventLevel.Debug)
                        .MinimumLevel.Debug()
                        .Enrich.FromLogContext()
                        .CreateLogger();

            try
            {
                MainAsync(args).ConfigureAwait(false);
                return 0;
            }
            catch
            {
                return 1;
            }
        }

        private static async Task MainAsync(string[] args)
        {
            // Create service collection
            Log.Information("Creating service collection");
            var serviceCollection = new ServiceCollection();
            ConfigureServices(serviceCollection);

            // Create service provider
            Log.Information("Building service provider");
            IServiceProvider serviceProvider = serviceCollection.BuildServiceProvider();

            try
            {
                Log.Information("Starting service");
                await serviceProvider.GetService<App>().Run();
                Log.Information("Ending service");
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Error running service");
                throw;
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }

        private static void ConfigureServices(IServiceCollection services)
        {
            // Add logging
            services.AddSingleton(
                LoggerFactory.Create(
                    builder => { builder.AddSerilog(dispose: true); }));

            services.AddLogging();

            // Build configuration
            Configuration = new ConfigurationBuilder()
                           .SetBasePath(Directory.GetParent(AppContext.BaseDirectory).FullName)
                           .AddJsonFile("appSettings.json", false)
                           .Build();

            // Add access to generic IConfigurationRoot
            services.AddSingleton(Configuration);

            // Add app
            services.AddTransient<App>();
        }

    }
}

我在 builder.AddSerilog 线上的 [​​=11=] 方法中遇到了一个问题,我无法弄清楚为什么它无法解决 AddSerilog

我丢失了一个包裹:Serilog.Extensions.Logging

出于某种原因,VS 甚至 Resharper 都无法提供此建议。