Azure Web app Error: Could not find 'aspnetcorev2_inprocess.dll'. The framework 'Microsoft.WindowsDesktop.App', version '3.1.0' (x86) was not found

Azure Web app Error: Could not find 'aspnetcorev2_inprocess.dll'. The framework 'Microsoft.WindowsDesktop.App', version '3.1.0' (x86) was not found

我正在使用 azure devops 管道将我的 Asp.net 核心应用程序部署到 azure web 应用程序。 这是我的 csproj Prepertygroup :

<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
     <Version>3.1.18</Version>
    <!--<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>-->
    <UserSecretsId>aspnet-WebApp_OpenIDConnect_DotNet-81EA87AD-E64D-4755-A1CC-5EA47F49B5D8</UserSecretsId>
    <WebProject_DirectoryAccessLevelKey>0</WebProject_DirectoryAccessLevelKey>
  </PropertyGroup>

使用此管道脚本部署到具有 .NET 版本的 Azure Web 应用程序 Windows:.NET Core 3.1/2.1。

 trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

 
- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    includePreviewVersions: true # Required for preview versions
    performMultiLevelLookup: true
- task: UseDotNet@2
  inputs:
   version: '3.1.x'
   packageType: sdk
   includePreviewVersions: true
   performMultiLevelLookup: true

一切都已部署,但是当我启动应用程序时出现此错误:

当我去这里查看日志时,我发现了:

Could not find 'aspnetcorev2_inprocess.dll'. Exception message:
It was not possible to find any compatible framework version
The framework 'Microsoft.WindowsDesktop.App', version '3.1.0' (x86) was not found.
  - No frameworks were found.

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.WindowsDesktop.App&framework_version=3.1.0&arch=x86&rid=win10-x86

有什么想法吗?老实说,我对 azure 网络应用程序所需的 .netcore 版本与我使用的 .netcore3.1 版本之间的区别感到有些困惑。

编辑“1”: 这是我的 csproj 文件:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    
<WebProject_DirectoryAccessLevelKey>0</WebProject_DirectoryAccessLevelKey>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="AppCreationScripts\**" />
    <Compile Remove="ReadmeFiles\**" />
    <Content Remove="AppCreationScripts\**" />
    <Content Remove="ReadmeFiles\**" />
    <EmbeddedResource Remove="AppCreationScripts\**" />
    <EmbeddedResource Remove="ReadmeFiles\**" />
    <None Remove="AppCreationScripts\**" />
    <None Remove="ReadmeFiles\**" />
  </ItemGroup>

  <ItemGroup>
   
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Azure.Storage.Blobs" Version="12.10.0" />
    <PackageReference Include="Microsoft.Azure.Cosmos" Version="3.23.0" />
    <PackageReference Include="Microsoft.Azure.Storage.Blob" Version="11.2.3" />
    <PackageReference Include="Microsoft.Identity.Web" Version="1.21.1" />
    <PackageReference Include="Microsoft.Identity.Web.UI" Version="1.21.1" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
  </ItemGroup>

</Project>
  • here
  • 安装托管包
  • 是的,您需要安装 ASP.NET Core 3.1 SDK
  • 将 web.config 处理程序从 AspNetCoreModuleV2 更改为 web.config
  • 中的 AspNetCoreModule

500.31 ANCM Failed to Find Native Dependencies

  • 此启动失败的最常见原因是未安装 Microsoft.NETCore.AppMicrosoft.AspNetCore.App 运行时。
  • 如果应用程序部署到 ASP.NET Core 3.0 并且机器上不存在该版本,则会发生此错误。

要修复此错误,可以:

  • 在机器上安装合适版本的 .NET Core。

  • 更改应用程序以针对计算机上存在的 .NET Core 版本。

  • 将应用发布为 self-contained deployment

  • 检查应用服务的配置以更改它以启用对 .NET 3.1 的支持。

  • 登录到您的门户 --> 导航到您的应用服务 --> 单击配置

  • 堆栈设置下,更改 .Net Framework 版本。

  • 单击保存,然后返回概览并重新启动应用程序服务。

刷新浏览器后,错误应该会消失,应用程序会加载。

详情请参考500.31 ANCM Failed to Find Native Dependencies