gpt4 book ai didi

c# - 部署到 azure 错误 - 无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions”

转载 作者:行者123 更新时间:2023-12-03 06:13:36 33 4
gpt4 key购买 nike

我有一个在 azure 上运行的应用程序。我最近已将其更新到 .NET 7,但部署始终工作正常。昨天,我在没有更改或添加依赖项的情况下部署了该应用程序,但出现了此异常。

System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions,Version=7.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。文件名:“Microsoft.Extensions.Logging.Abstractions,Version=7.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”,位于 Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions.AddLogging(IServiceCollection 服务,Action`1 配置)

当我在本地运行该项目时,它会正常启动。我尝试添加缺少的依赖项,但这并不能修复错误。 enter image description here enter image description here

我还检查了 azure 上的 wwwroot 文件夹,但 dll 就在那里

enter image description here

我尝试过的:

我有什么遗漏的地方需要改变吗?欢迎任何帮助。

更新:

正如 Harshitha 在评论中建议的那样,我还在 .csproj 和我的 webconfig 中添加了以下几行。但这并没有帮助

.csproj

    <ItemGroup>
<Content Include="packages\microsoft.extensions.logging.abstractions\7.0.0\.signature.p7s" />
<Content Include="packages\microsoft.extensions.logging.abstractions\7.0.0\microsoft.extensions.logging.abstractions.7.0.0.nupkg" />
<Reference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" Culture="neutral" PublicKeyToken="adb9793829ddae60" processorArchitecture="MSIL">
<HintPath>packages\microsoft.extensions.logging.abstractions\7.0.0\lib\net7.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
</ItemGroup>

网络配置

    <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

最佳答案

正如我在评论中提到的,出现此类问题的原因是同一个软件包安装了两个不同的版本(版本冲突)。

示例:

安装 Serilog.AspNetCore 后,包 Microsoft.Extensions.Logging.Abstractions 包含在 Microsoft.Extensions.Logging 中.

enter image description here

When I check my bin/debug folder there is no Microsoft.Extensions.Logging.Abstractions.dll.

  • 由于 Microsoft.Extensions.Logging.Abstractions 位于 Serilog.AspNetCore 下,因此它在 bin 文件夹中不可用。

  • 最初,我什至无法在 bin 中找到该包。 enter image description here

  • 您可能已使用另一个版本再次安装了相同的软件包。

How can force the dll build ?

这可以通过以下方式之一完成:

通过在 VS Local 中安装最新版本,构建并重新部署应用程序。

直接将所需版本复制到 wwwroot 文件夹中(您已经完成并为您工作)。

关于c# - 部署到 azure 错误 - 无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76495730/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com