我有一个用于 Azure Function v4 应用程序的新 dotnet 6 项目。
我有多个服务总线,每个服务总线都有多个队列和主题,我正在尝试使用 Microsoft.Extensions.Azure 将 ServiceBusClients 注入到应用程序中。我正在尝试遵循在 ASP.net Core 中注入多个 ServiceBusClient 和这个https://www.nuget.org/packages/Azure.Messaging.ServiceBus/。但是,我使用的是使用 program.cs 文件而不是 startup.cs 文件的新指南。
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Azure;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var localRoot = Environment.GetEnvironmentVariable("AzureWebJobsScriptRoot");
var azureRoot = $"{Environment.GetEnvironmentVariable("Home")}/site/wwwroot";
var actualRoot = localRoot ?? azureRoot;
var config = new ConfigurationBuilder()
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
string connectionString = config.GetConnectionString("MyDBConnectionString")!;
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.ConfigureAppConfiguration(config =>
{
config
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
})
.ConfigureServices(services =>
{
services.AddDbContextFactory<MyDbContext>(
options => SqlServerDbContextOptionsExtensions.UseSqlServer(options, connectionString)
);
services.AddHttpClient();
services.RegisterServicesLayer();
string crmConnectionString = config.GetConnectionString("crm.pub")!;
services.AddAzureClients(clientsBuilder =>
{
clientsBuilder.AddServiceBusClient(crmConnectionString).WithName("CrmPublish");
});
})
.Build();
host.Run();
但是,我收到这个错误:
错误 CS1061“IServiceCollection”不包含“AddAzureClients”的定义,并且找不到接受类型“IServiceCollection”的第一个参数的可访问扩展方法“AddAzureClients”(您是否缺少 using 指令或程序集引用?)
所有库都已安装。
有什么建议吗?