Внедрение зависимостей для функций Azure V1 DI - PullRequest
1 голос
/ 12 июня 2019

У меня есть новая проблема, касающаяся внедрения зависимости в лазурь функция v1 .

Фактическая ситуация:

У меня есть функция Azure V1 http triggered, в которой я хочу сослаться на свои бизнес-сервисы так, как я могу использовать свои сервисы, не изобретая велосипед.Я искал в интернете и нашел эту интересную статью от Microsoft.

Однако, похоже, она работает только с azure function v2 (ядро .net), потому чтовсякий раз, когда я пытаюсь установить Microsoft.Azure.Functions.Extensions, я всегда получаю следующую ошибку:

NU1107 Обнаружен конфликт версий для Microsoft.Azure.WebJobs.Установите / обратитесь к Microsoft.Azure.WebJobs 3.0.5 непосредственно в проект FunctionApp2365431, чтобы решить эту проблему.FunctionApp2365431 -> Microsoft.Azure.Functions.Extensions 1.0.0 -> Microsoft.Azure.WebJobs (> = 3.0.5) FunctionApp2365431 -> Microsoft.NET.Sdk.Functions 1.0.28 -> Microsoft.Azure.WebJobs (> =2.2.0 && <2.4.0) </p>

Ниже приведено сравнение библиотек двух проектов (один в ядре .net (в котором я мог бы реализовать DI), а другой в Net Framework 461).

Comparison

Вы можете видеть, что версии разные, функция лазера .net core V2 равна 3,5 и V12.2

Я пытался ссылаться / устанавливать вручную версию пакета, как было указано в сообщении об ошибке, и меня попросили обновить пакет NewtonSoft.Json, я тоже это сделал,и я мог после этого принудительно установить Microsoft.Azure.Functions.Extensions НО, он сломал проект, и я не мог перестать получать ошибки .

Вот сборкарезультат после выполнения шагов, упомянутых выше:

Build errors

Мой вопрос здесь, какМогу ли я настроить DI в проекте Net Framework, например.Для функций Azure V1 ?

Тогда, почему является документацией только для функции Azure V2 для настройки DI ?

Является ли V1 устаревшим или Microsoft больше не поддерживает функции Azure V1? Потому что это странно!

Заранее спасибо,

РЕДАКТИРОВАТЬ : Myвопрос не является дубликатом этого потока StackOverFlow , поскольку он сложен и устарел по сравнению с решением, которое Microsoft предоставляет для функций Azure v2.

Я также смотрел это интересное видео (все еще не проверял это), и единственная проблема здесь в том, что я хочу использовать что-то, предоставленное Microsoft (официально), как для az func v2, а не пакет, который он разработал.

1 Ответ

0 голосов
/ 13 июня 2019

Как упомянул @silent в своем комментарии,

Вот ответ от Microsoft

Что касается вашего запроса, то вот ответ от Azure Function команда разработчиков:

  1. Не планируется отказываться от функции Azure V1, но рекомендуется использовать функцию Azure V2, поскольку в будущем она получит больше новых функций.

  2. На данный момент функция DI поддерживается только функцией Azure V2. Если вам нужна эта функция, возможно, вам придется перенести приложение из V1 в V2. хорошая идея, и этот документ будет полезен: https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions#migrating-from-1x-to-2x

Таким образом, единственный способ сделать это до сих пор - следовать этому видео , в котором рассказывается о реализации DI в функции Azure V1 с использованием пакета AzureFunctions.Autofac.

HK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...