【发布时间】:2021-12-26 11:30:01
【问题描述】:
我在这里遇到了一个奇怪的问题。我创建了一个 Worker 项目,以便在 this documentation 之后在 .NET 6 中创建一个 Windows 服务。我想从appsettings.json 读取设置,所以我添加了以下代码:
IHost host = Host.CreateDefaultBuilder(args)
.UseWindowsService(options =>
{
options.ServiceName = "My Service";
})
.ConfigureServices(services =>
{
var settings = new ScriptOptions(); // ScriptOptions is just a POCO class
services.Configuration.Bind(settings);
services.AddHostedService<WindowsBackgroundService>();
})
.Build();
如您所见,IntelliSense 似乎识别出services 中有Configuration 属性(IServiceCollection 的实例)。
但是,代码无法编译并出现此错误:
“IServiceCollection”不包含“Configuration”的定义,并且找不到接受“IServiceCollection”类型的第一个参数的可访问扩展方法“Configuration”(您是否缺少 using 指令或程序集引用?)
我缺少什么包裹?我的项目目前有:
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.0" />
【问题讨论】:
标签: c# .net configuration windows-services .net-6.0