web-dev-qa-db-ja.com

Azure関数v3はファイルまたはアセンブリをロードできませんでした.Microsoft.Extensions.DependencyInjection.abstracitions、version = 5.0.0.0 EF Core 5.0-RC1

場合

.NETCORE 3.1でAzure関数V3を作成しています。 EF Core 5.0-RC1デパイレーインジェクション

1)依存関係

[Assembly: FunctionsStartup(typeof(xxxxx.Startup))]
namespace xxxxx
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            var services = builder.Services;
            var configBuilder = new ConfigurationBuilder()
                .SetBasePath(Environment.CurrentDirectory)
                .AddJsonFile("local.settings.json", true, reloadOnChange: true)
                .AddEnvironmentVariables() ;
            ConfigureServices(services);
            ConfigureAppSettings(services, configBuilder.Build());
            ConfigureLogging(services, configBuilder.Build());
        }
    }
}
 _

2)EFコア5.0 RC-1

https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-efcore-0-0-rc1/

エラー

ファイルまたはアセンブリの「Microsoft.Extensions.DependencyIncorction.abstractions、version = 5.0.0.0、Culture = Neutral、PublicKeytoken = ADB9793829DDAE60」をロードできませんでした。システムは、指定されたファイルを見つけることができません。

image

パッケージ

以下のパッケージが参照されています

image

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AzureFunctionsVersion>v3</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="4.1.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.0-rc.1.20451.14" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.7" />
    <PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
    <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
  </ItemGroup>
  <ItemGroup>
    <None Update="Host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>
 _

トラブルシューティング

startup.cs(依存注入)に次の行をコメントすると問題が解決されます

[Assembly: FunctionsStartup(typeof(xxxxx.Startup))]
 _
8
Rupesh

Microsoft.Azure.Functions.Extensionsは.NET Standard 2.0によって異なります。

enter image description here

Entity Framework Core 5.0 RC1は.NET Standard 2.0プラットフォームでは実行されません(== --- - )、。純規格2.1 。そのため、Microsoft.Azure.Functions.Extensionsが見つかりませんでした。

enter image description here

詳細については、これを参照することができます 記事

3
Joey Cai

.NET Core 3.1以下を使用している場合。ダウングレードMicrosoft.extensions.DependencyInjectionおよびMicrosoft.Extensions.DependencyIncigjection.Abstracitionsから3.1.11。

4

Azure関数V3ではサポートされていません。 https://github.com/azure/azure-functions-vs-build-sdk/issues/472

ただし、ローカルでテストしたい場合は、Azure Function Core ToolsディレクトリにDLLを更新することができました.C:\ Program Files\Microsoft\Azure Functionsコアツール

私の関数でEF5を使用するようにこれらのDLLを置き換える/更新する必要がありました: DLL'Sリスト

Microsoft.Extensions.DependencyInjection.Abstractions.dll
Microsoft.Extensions.Logging.Abstractions.dll
Microsoft.Extensions.Options.dll
Microsoft.Extensions.Primitives.dll
 _
1
Thiago Silva

私の関数アプリに注入されるサービスを使用して、.NET標準2.1 libプロジェクトがあります。私の解決策で、libは参照されます。

Microsoft.Extensions.Options v5.0.0

パッケージのバージョンを3.1.11に変更した後、私の関数アプリは正常に実行されました。つまり、機能アプリケーションによって参照されているプロジェクトが.NET 5.0パッケージへの参照がある場合は、DIを使用している場合は、この例外が取得されます。

私の関数アプリの現在のバージョン:
[。]機能APP:.NET CORE 3.1
[。] Azure機能版:3
[。]その他のlibs:.NET標準2.1

関数アプリの.NET 5.0から始めましたが、明らかにこれは今ではサポートされていません。
[。] 。Azure関数に関するNET 5サポート

うまくいけば、この答えは長すぎる前に時代遅れになるでしょうが、2021年1月24日現在、Azure関数アプリソリューション/プロジェクトで.NET 5.0プロジェクトまたはパッケージ参照を使用しないでください。

0
John