【发布时间】:2021-05-15 17:41:42
【问题描述】:
当我尝试运行我的 Windows 服务时,该服务没有启动并且我收到以下错误。
.NET Core 版本:3.1.11 说明:进程因未处理的异常而终止。 异常信息:System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Extensions.Configuration.Abstractions,Version=5.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。找到的程序集的清单定义与程序集引用不匹配。 (0x80131040)
appsettings.json
{
"myservice": {
"production": "No",
"staging": "No",
"development": "Yes",
}
}
public class Options
{
public string Production { get; set; }
public string Staging { get; set; }
public string Development { get; set; }
}
程序.cs
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.Configure<Options>(hostContext.Configuration.GetSection("myservice"));
services.AddHostedService<Worker>();
services.AddTransient<Options>(_ => _.GetRequiredService<IOptions<Options>>().Value);
})
.UseWindowsService();
}
Worker.cs
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private BackgroundJobServer _server;
private readonly Options _options;
public Worker(ILogger<Worker> logger, IOptions<Options> options)
{
_logger = logger;
_options = options.Value;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
_server = new BackgroundJobServer();
while (!stoppingToken.IsCancellationRequested)
{
await Task.Delay(1000, stoppingToken);
}
}
}
我尝试了不同的选项,但无法解决问题。感谢您的帮助。
【问题讨论】:
-
您尝试在 .NET Core 3.1 应用程序下使用 .NET 5 库,这是无效的。
标签: c# visual-studio-2019 backgroundworker .net-core-3.1 appsettings