Erro no Azure Function App VS 2019 .NET 3.0 - Método não encontrado: 'IFunctionsHostBuilder.get_Services ()'

9

Problema com o Azure Functions / EFSQLSERVER .NET CORE 3.0:

Reproduzir:

  • Use o Visual Studio 2019 16.2.1
  • Use o modelo da Função do Azure para criar um projeto.
  • Estrutura de destino alterada para o .NET Core 3.0
  • Adicione a referência Microsoft.EntityFrameworkCore.SqlServer "Version =" 3.0.0 "via Nuget Package Manager.
  • Função Excecut App usando F5

Resulta em um erro conforme mostrado nos seguintes trechos. Alguém encontrou esse problema?

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

Meus pacotes de pepitas do arquivo 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

insira a descrição da imagem aqui

Athadu
fonte
Isso deve ser um problema de pacote, pois tenho um problema semelhante. Apenas adicionando o pacote de extensões http (Microsoft.Http.Extensions), recebo esse erro (sem usar nenhum código desse pacote). Ao removê-lo, o erro desaparece. Estou no 16.3.2 com a mesma versão dos webjobs.
MarkD

Respostas:

3

Por enquanto, o ASP.NET Core 3.0 não está disponível no momento para o Serviço de Aplicativo do Azure, verifique este documento da Microsoft .

O Azure Functions 3.0, que será totalmente compatível com o Core 3.0, estará disponível em outubro, confira aqui . No entanto, não foi lançado agora.

Com esse problema , você pode encontrar o Azure Function 2.0 no momento não funciona com nenhum pacote Microsoft.Extensions. * 3. * e não pode compartilhar código com os serviços .Net Core 3.0.

Para obter mais informações sobre o Azure Fuction 3.0, consulte esta discussão .

George Chen
fonte
Entendi. Obrigado.
Athadu 9/10/19
Há rumores de que a visualização da publicação estará disponível em 25 de outubro
sjokkogutten 17/10/1919
2

Agora você pode usar o .net core 3.0 para criar funções azuis. Atualização Microsoft.NET.Sdk.Functionspara 1.0.30-beta2e conjunto AzureFunctionsVersionparav3-preview .

Leia mais sobre Desenvolver funções do Azure usando o .NET Core 3.0 aqui

insira a descrição da imagem aqui

Agora você pode usar o DI usando 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>();
        }
    }
}
sjokkogutten
fonte
Isso funcionou para mim - no caso a correção acima não está funcionando e os usos do projeto função Nuget Microsoft.EntityFrameworkCore 3.1.0, downgrade para 3.0.1 caso contrário, haverá o mesmo erro
Felice Anno
-1

Até que o Azure Functions 3.0 esteja disponível como uma versão estável, parece mais fácil fazer o downgrade do Microsoft.Extensions.Httppacote para 2.2.0:

Isso me ajudou com o mesmo problema, pois parece não haver outra solução alternativa no momento. Até os pacotes beta disponíveis não estão funcionando em um servidor de compilação.

insira a descrição da imagem aqui

Mais detalhes aqui: Injeção de dependência de funções do Azure - erro ao fazer referência à biblioteca de classes (Github).

Catalisador de qualidade
fonte