azure 应用程序在AppService上崩溃,无法加载文件或程序集,但可在本地工作

rbl8hiat  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(126)

我在Azure AppService中部署了一个ASP.NET Core 6应用程序。在我将Serilog.AspNetCore更新到第7个版本后,它开始崩溃:

Could not load file or assembly 'Microsoft.Extensions.Logging.Abstractions, Version=7.0.0.0

(问题仅发生在AppService中,本地一切正常)
我怀疑部署过程会从.NET SDK中清理dll,类似于Azure Functions部署流程。在Azure Functions中,此问题可以通过以下方式解决:

<FunctionsPreservedDependencies Include="Microsoft.Extensions.Logging.Abstractions.dll" />

或者是

<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>

AppService是否有类似的功能?
注意:降级到第6版后,一切正常
注2:我没有Advanced Tools的访问权限,因此无法验证正在部署的文件(受公司DevOps的限制)
编辑:这是我的csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <UserSecretsId>1bcc1cf7-6fce-4196-9bb5-a7aa29a04078</UserSecretsId>
    <RootNamespace>MyApp</RootNamespace>
    <GenerateDocumentationFile>True</GenerateDocumentationFile>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.13" />
    <PackageReference Include="Serilog.Sinks.Splunk" Version="3.7.0" />
    <PackageReference Include="Serilog.AspNetCore" Version="7.0.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyApp.AppCore\MyApp.AppCore.csproj" />
  </ItemGroup>

</Project>
kt06eoxx

kt06eoxx1#

我已经将Serilog.AspNetCore版本升级到7.0.0,并且能够在没有任何错误的情况下部署和运行Azure应用程序服务。

  • 更新包版本后,运行并构建应用程序,以获取反映在已创建的bin文件夹中的更改。
  • 在您的本地文件夹中,检查您是否在Serilog.AspNetCore => Microsoft.Extensions.Logging下有可用的Microsoft.Extensions.Logging.Abstractions

  • 如果找不到,请从NuGet包手动安装,然后重新部署应用程序并检查。

或者是

  • 尝试从Extensions选项卡安装软件包(如果您有访问权限)。

相关问题