Ошибка в приложении-функции Azure VS 2019 .NET 3.0 - метод не найден: 'IFunctionsHostBuilder.get_Services ()' - PullRequest
2 голосов
/ 04 октября 2019

Проблема с функциями Azure / EFSQLSERVER .NET CORE 3.0:

Для воспроизведения:

  • Использование Visual Studio 2019 16.2.1
  • Использование шаблона функции Azure длясоздать проект.
  • Изменил Target Framework на .NET Core 3.0
  • Добавьте ссылку Microsoft.EntityFrameworkCore.SqlServer "Version =" 3.0.0 "через диспетчер пакетов Nuget.
  • Excecut Function App с использованием F5

В результате появляется ошибка в следующих фрагментах: Кто-нибудь сталкивался с этой проблемой?

Azure Functions Core Tools (2.7.1633 Commit hash: 45c7d86a3bbc9ed0a80a8f4199aa7ea80ccfb24e)
Function Runtime Version: 2.0.12673.0
[10/4/2019 6:13:14 PM] Building host: startup suppressed:False, configuration suppressed: False
[10/4/2019 6:13:14 PM] Loading startup extension 'Startup'
[10/4/2019 6:13:14 PM] Loaded extension 'Startup' (1.0.0.0)
[10/4/2019 6:13:14 PM] Loading startup extension 'DurableTask'
[10/4/2019 6:13:14 PM] Loaded extension 'DurableTask' (1.0.0.0)
[10/4/2019 6:13:14 PM] A host error has occurred
[10/4/2019 6:13:14 PM] FunctionApp5: Method not found: 'Microsoft.Extensions.DependencyInjection.IServiceCollection Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder.get_Services()'.
Value cannot be null.
Parameter name: provider

Мои пакеты nuget из файла csproj.

<ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="1.8.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
  </ItemGroup>
using Microsoft.Azure.Functions.Extensions.DependencyInjection;


[assembly: FunctionsStartup(typeof(FunctionApp5.Startup))]
namespace FunctionApp5
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            **var x = builder.Services;**

        }
    }
}

.NET Core 3.0

enter image description here

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

На данный момент ASP.NET Core 3.0, в настоящее время недоступный для службы приложений Azure, установите флажок Microsoft doc .

Функции Azure 3.0, которые будут полностью совместимы с Core 3.0, будутбудет доступен в октябре, отметьте здесь . Однако сейчас она не выпущена.

Из этой проблемы вы можете обнаружить, что функция 2.0 Azure сейчас не работает ни с какими пакетами Microsoft.Extensions. * 3. * и не может делиться кодом с. Службы Net Core 3.0.

Дополнительные сведения о Azure Fuction 3.0 см. В этом обсуждении .

0 голосов
/ 21 октября 2019

Теперь вы можете использовать .net core 3.0 для создания функций Azure. Обновите Microsoft.NET.Sdk.Functions до 1.0.30-beta2 и установите AzureFunctionsVersion на v3-preview.

Подробнее о разработке функций Azure с использованием .NET Core 3.0 здесь

enter image description here

Теперь вы можете использовать DIиспользуя IFunctionsHostBuilder

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;

[assembly: FunctionsStartup(typeof(BI_Geo.AzureFunctions.Startup))]
namespace BI_Geo.AzureFunctions
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddScoped<IProcess, Process>();
        }
    }
}
...