在 Azure Function App 中获取“System.IO.FileNotFoundException:无法加载文件或程序集“Azure.Core,版本 = 1.38.0.0”

问题描述 投票:0回答:1

目前,我正在 Azure 中运行 .NET 8 Azure Function 应用程序。这是一个在 Linux 应用服务计划上运行的点网隔离函数。

我在尝试运行 HTTP 触发器功能时收到此错误:

Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Azure.Core, Version=1.38.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8'. The system cannot find the file specified.

该解决方案由四个项目组成:Application.csproj、Status.API.csproj、Domain.csproj 和 Infrastructure.csproj。

这是 Status.API.csproj 包的示例

<ItemGroup>
  <FrameworkReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="AspNetCore.HealthChecks.SqlServer" Version="7.0.0" />
  <PackageReference Include="Azure.Identity" Version="1.11.0" />
  <PackageReference Include="Microsoft.ApplicationInsights" Version="2.22.0" />
  <PackageReference Include="Microsoft.Azure.AppConfiguration.Functions.Worker" Version="7.2.0" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.21.0" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.1.0" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version="1.2.0" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.17.0" />
  <PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.2.0" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
  <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" />
  <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>

我正在使用 dotnet list package --include-transitive 来尝试识别正在寻找 Azure.Core 1.38 版本的内容,它告诉我有一个包正在使用它,但我必须从那里手动检查。例如 Azure.Identity 使用 Azure.Core(>=1.38.0)。

我尝试降级软件包,认为这些功能没有使用最新的.NET 8版本。

我将进一步降低 NuGet 包版本的等级。

我已经完成了“诊断和解决问题”功能:

功能应用程序宕机或报告错误图片

编辑:

这是 PropertyGroup 的示例:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <DockerFastModeProjectMountDirectory>/home/site/wwwroot</DockerFastModeProjectMountDirectory>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
  </PropertyGroup>

编辑

我想到的最后一件事是删除单元测试,删除测试后,它就起作用了。我怀疑它是 Testcontainers.MsSql 包 (

<PackageReference Include="Testcontainers.MsSql" Version="3.9.0" />
)。

我仍在投资它的依赖项。

测试库包的上下文

  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.7" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="Moq" Version="4.20.70" />
    <PackageReference Include="Testcontainers.MsSql" Version="3.9.0" />
    <PackageReference Include="xunit" Version="2.5.3" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
  </ItemGroup>
c# .net azure azure-functions azure-functions-isolated
1个回答
0
投票

该问题可能是由于安装的软件包版本存在漏洞/不兼容造成的。

我已经安装了

Azure.Identity
1.11.4 版本以与
Azure.Core
版本 1.38.0:

兼容

enter image description here

我在我的项目中使用了以下版本的相同包,并且函数应用程序按预期工作。

.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
    <ItemGroup>
        <FrameworkReference Include="Microsoft.AspNetCore.App" />
        <PackageReference Include="AspNetCore.HealthChecks.SqlServer" Version="7.0.0" />
        <PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" Version="1.3.1" />
        <PackageReference Include="Azure.Identity" Version="1.11.4" />
        <PackageReference Include="Microsoft.ApplicationInsights" Version="2.22.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.21.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.1.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version="1.2.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.17.0" />
        <PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
        <PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.2.0" />
        <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
        <PackageReference Include="Microsoft.Azure.AppConfiguration.Functions.Worker" Version="7.2.0" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
        <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" />
        <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" />
  </ItemGroup>
</Project>

测试项目中可用的包:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>
  </PropertyGroup>
  <ItemGroup>
      <PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" Version="1.3.1" />
      <PackageReference Include="coverlet.collector" Version="6.0.0" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.7" />
      <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
      <PackageReference Include="Microsoft.Extensions.Configuration.AzureAppConfiguration" Version="7.3.0" />
      <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
      <PackageReference Include="Moq" Version="4.20.70" />
      <PackageReference Include="Testcontainers.MsSql" Version="3.9.0" />
      <PackageReference Include="xunit" Version="2.5.3" />
      <PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\FunctionApp2\FunctionApp2.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Using Include="Xunit" />
  </ItemGroup>
</Project>
  • 功能应用程序运行没有任何问题:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.