Мы разрабатываем набор функций Azure для нашего нового продукта. Мы используем внедрение зависимостей для нашего проекта, следуя стратегии, упомянутой в следующей статье.
https://blog.wille-zone.de/post/azure-functions-dependency-injection/
и зарегистрировал расширение в Startup.cs
Это нормально работает в локальной среде разработки. Однако, когда мы попытались опубликовать его в лазурном режиме, среда выполнения функций лазурного типа не обнаружила внедренные зависимости. Мы обнаружили похожую проблему в следующем сообщении sctak overflow.com
IExtensionConfigProvider не инициализируется или не связывается с Microsoft.Azure.WebJobs v3 а>
Мы внесли изменения в соответствии с их рекомендацией в принятом ответе. Согласно этому
«В C # SDK 1.0.19 проверяет время сборки для классов, атрибутированных с помощью атрибута сборки WebJobsStartup в текущем проекте функции или любой зависимости (ProjectReference или PackageReference) текущего проекта, и генерирует соответствующий файл extensions.json».
Однако мы столкнулись со странной проблемой: когда мы делаем сборку релиза, запись класса запуска создается в файле extensions.json.
{"extension": [{"name": "AzureStorage", "typeName": "Microsoft.Azure.WebJobs.Extensions.Storage.AzureStorageWebJobsStartup, Microsoft.Azure.WebJobs.Extensions.Storage, Version = 3.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 "}, {" name ":" Startup "," typeName ":" AAA.BBBB.Functions.Startup, AAA.BBB.Functions, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null "}]}
однако, когда мы пытаемся опубликовать, запись класса запуска НЕ создается в extension.json
{"extension": [{"name": "AzureStorage", "typeName": "Microsoft.Azure.WebJobs.Extensions.Storage.AzureStorageWebJobsStartup, Microsoft.Azure.WebJobs.Extensions.Storage, Version = 3.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 "}]}
Мы в тупике и не знаем, в чем проблема