Azure WebJob升级.NET Core 7后部署报错:缺少指定桌面框架
依赖的Runtime类型错误:你的WebJob依赖了
Microsoft.WindowsDesktop.App框架(通常是用到了Windows桌面相关API或组件),而你在Azure上安装的是ASP.NET Core 7 Runtime——这是两种完全不同的Runtime包。WindowsDesktop Runtime包含桌面应用所需的组件,ASP.NET Core Runtime仅支持Web应用,无法替代前者。发布模式与Azure环境不匹配:如果你的WebJob采用**框架依赖部署(FDD)**方式发布,Azure应用服务必须安装对应版本的WindowsDesktop Runtime才能运行。目前Azure应用服务扩展里没有单独的WindowsDesktop Runtime扩展,仅靠ASP.NET Core Runtime无法满足依赖需求。另外,若发布时未指定正确的运行时标识(比如
win-x64),或者Azure应用服务的操作系统位数(x64/x86)与发布包不匹配,也会触发框架找不到的错误。错误安装不兼容的NuGet包:
Microsoft.NETCore.App.Host.win-x64是.NET SDK自动管理的运行时宿主包,并非用于项目直接引用的业务包,且你安装的是.NET 8版本,和项目的.NET 7环境完全不兼容,所以会提示“包类型不被项目支持”。这类宿主包不需要手动安装,由SDK根据项目配置自动处理。Azure应用服务运行栈配置异常:如果你的Azure应用服务运行栈未设置为.NET 7(Windows),或者操作系统选择了Linux(
Microsoft.WindowsDesktop.App仅支持Windows环境),即使安装了ASP.NET Core Runtime,也无法找到桌面框架依赖。
内容的提问来源于stack exchange,提问作者JohnK

