.NetCore 3.1API 无法加载文件或程序集“Microsoft.AspNetCore.Hosting.Abstractions”

Posted

技术标签:

【中文标题】.NetCore 3.1API 无法加载文件或程序集“Microsoft.AspNetCore.Hosting.Abstractions”【英文标题】:.NetCore 3.1API Could not load file or assembly 'Microsoft.AspNetCore.Hosting.Abstractions' 【发布时间】:2020-10-11 06:29:57 【问题描述】:

未处理的异常。 System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.AspNetCore.Hosting.Abstractions,版本=3.1.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。 文件名:'Microsoft.AspNetCore.Hosting.Abstractions, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'

我正在使用 aws 将我的项目部署到服务器 (.NetCore 3.1)。我遇到了错误。但在本地 iis 中工作正常。

我尝试安装“Microsoft.AspNetCore.Hosting.Abstractions”。但我仍然面临同样的问题。

请在下面找到包参考

 <Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="EPPlus" Version="5.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="3.1.5" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="4.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.6" />
    <PackageReference Include="MongoDB.Driver" Version="2.10.3" />
    <PackageReference Include="Nancy" Version="2.0.0" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.4.1" />
    
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Helpers\Helpers.csproj" />
    <ProjectReference Include="..\Models\Models.csproj" />
    <ProjectReference Include="..\Repository\Repository.csproj" />
    <ProjectReference Include="..\Services\Services.csproj" />
  </ItemGroup>


</Project>

关于同样的错误,我经历了几个link。我尝试了所有方法。但我仍然遇到同样的问题。

【问题讨论】:

各位大侠帮帮我 您是否在 AWS 中安装了最新的虚拟主机捆绑包? @JokiesDing 我不确定,因为我没有处理这个服务器。但是我提取了 dll,然后我才知道在服务器中没有最新版本的“Microsoft.AspNetCore.Hosting.Abstractions”(Assembly Microsoft.AspNetCore.Hosting.Abstractions,Version=2.2.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60 ) 但在我的本地 (Assembly Microsoft.AspNetCore.Hosting.Abstractions, Version=3.1.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)。希望我认为服务器中没有最新版本 听起来AWS上的.net core版本是.net core 2.2。那么,您是否在该 AWS 服务器上安装了 3.1 和托管包? 是的,在服务器 3.1 中存在。 【参考方案1】:

这可能类似于这个问题(不同的文件)https://docs.microsoft.com/en-us/answers/questions/8017/aspnet-core-310-site-wont-run-could-not-load-micro.html

能否请您验证所有项目中的所有 .Net 核心相关包?此外,如果您可以发布所有项目的包引用,则很容易验证。

问题可能是由于您的任何项目中的一个或多个包造成的。此外,请确保 AWS 中提供了正确版本的 SDK。尝试一个具有相同项目设置的空应用程序(所有 5 个项目中的相同包,包版本较低)并将其部署到 AWS 以找出问题。

【讨论】:

对于所有 5 个项目,我已经安装了我发布的相同包。问题是如果我自己发布并在环境中托管它工作正常,但如果通过管道发布它会显示错误。所以我有点困惑。 在 Windows 上编译与在 Linux 上编译可能有区别?

以上是关于.NetCore 3.1API 无法加载文件或程序集“Microsoft.AspNetCore.Hosting.Abstractions”的主要内容,如果未能解决你的问题,请参考以下文章

Wcf 服务在 .NET Core 3.1 控制台应用程序中工作,但在 ASP.NET Core 3.1 Web API 中无法工作

将项目从 2.2 更新到 3.1(缺少程序集)或如何在 .NET Core 中使用 API POST 请求时,PostAsJsonAsync()在 .Net Core 3.1 中不起作用 [重复]

HTTP 错误 500.32 - 将自包含 .Net Core 3.1 应用程序部署到 Azure 后,ANCM 无法加载 dll

AWS Lambda、.Net Core 和 MySql:无法加载文件或程序集 'System.Diagnostics.TraceSource,版本 = 4.0.0.0

无法运行 dockerized .NET Core (3.1) API

从 .Net Core 运行 Powershell - 无法加载文件或程序集 Microsoft.Management.Infrastructure