【问题标题】:Azure Web app Error: Could not find 'aspnetcorev2_inprocess.dll'. The framework 'Microsoft.WindowsDesktop.App', version '3.1.0' (x86) was not foundAzure Web 应用程序错误:找不到“aspnetcorev2_inprocess.dll”。找不到框架“Microsoft.WindowsDesktop.App”,版本“3.1.0”(x86)
【发布时间】:2022-01-27 22:19:42
【问题描述】:

我正在使用 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 web 应用程序所需的 .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>

【问题讨论】:

标签: .net asp.net-core .net-core azure-devops azure-web-app-service


【解决方案1】:
  • here 安装主机包
  • 是的,您需要安装ASP.NET Core 3.1 SDK
  • 将 web.config 处理程序从 AspNetCoreModuleV2 更改为 web.config 中的 AspNetCoreModule

500.31 ANCM 未能找到本机依赖项

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

要修复此错误,可以:

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

  • 更改应用以针对机器上存在的 .NET Core 版本。

  • 将应用发布为self-contained deployment

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

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

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

  • 点击保存,然后回到Overview并重启App Service。

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

详情请咨询500.31 ANCM Failed to Find Native Dependencies

【讨论】:

  • 您好@HarshithaVeeramalla-MT,感谢您的反馈,我能够使用 Visual Studio 发布选项进行部署,其中我指定了正确的目标运行时(.netcoreapp3.1 x86 架构),问题在于Web 应用程序上未安装正确的 sdk vas,并且 Visual Studio 以某种方式处理它。当我使用 Azure Devops 管道任务时:UseDotNet@2 我指定的是版本而不是目标体系结构,我有些怀疑这是问题所在,知道如何提及它吗? (我确实想配置一个其他开发人员可以使用的管道)。
  • "在机器上安装适当版本的 .NET Core。" ,你的意思是在网络应用程序上手动?我使用 azure 门户将 .NET core 3.1/2.1 指定为运行时堆栈,我项目上的目标框架是 netcoreapp3.1,这还不够吗?
  • 能否分享您的 csproj 文件。引用的包
  • 我编辑了我的帖子并添加了文件。
猜你喜欢
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2022-07-22
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
相关资源
最近更新 更多