问题
在 Azure 中将 .Net Core 2.2 Linux Web 应用升级到 .Net Core 3.1 后,应用程序因找不到指定框架“Microsoft.AspNetCore.App”,版本“3.1.0”而关闭
错误。我什至用 .Net Core 3.1 创建了一个新的 Linux Web 应用程序,并且在 bash 命令提示符后仍然将 dotnet --list-runtimes
输出为 2.2.7
.
详细信息
网站已关闭
日志流
报告应用程序已关闭,因为找不到 .net core 3.1。
创建了新的 .net core Web 应用
中北部的 3.1 linux webapp,同样的问题
确保其在美国中北部运行
根据https://aspnetcoreon.azurewebsites.net/ ,应该有完整的.netCore 3.1支持
opt/dotnet/runtimes
列出 3、3.0 和 3.0.0,但没有 3.1`
环境变量
Azure 列表中的我的环境变量 FRAMEWORK_VERSION = lts
,而不是 3.1
发布
这是使用 Azure AppService 部署任务从 azure devops ci 管道发布的。 3.1 在这里不可用,所以我选择了 LTS
更新 1
罪魁祸首似乎是 Azure Devops Web 应用程序/Web 服务任务中的框架堆栈中缺少 3.1。
每当我从 CI 发布时,Web 应用程序框架都会更新为在此下拉列表中选择的内容。如果我在 Azure Web App 上手动将框架更改为 3.1,该网站就会出现。但下一次发布时它会下降,因为它将框架恢复到 ci 中的设置。
新问题
如何获取 Azure Devops Release 管道来发布 .net core 3.1 任务?
更新2
相关 Azure DevOps 论坛帖子
截至 2020 年 2 月 23 日目前正在调查
.Net Core 3.1 deploy pipeline to Linux App Service
建议的解决方法
- 使用 YML 进行发布管道,并手动将版本从
3.0
更改为3.1
,如答案和 this thread 所示。 - 从
依赖框架
版本升级到自包含
版本。 Reference - 降级到 .NetCore 3.0
最佳答案
我遇到了同样的情况,使用您提供的信息,我已经能够通过在 Devops Pipelines Build .yml 文件中手动设置值来解决问题。看起来他们只是缺少运行时堆栈下拉列表中的值。如果您手动更新构建流程 .yml 文件,如下所示:
这将选择正确的框架版本。希望这将解决您的 Azure Devops CI Pipeline 部署问题。
关于azure - 未找到 Linux Azure WebApp 的指定框架 'Microsoft.AspNetCore.App' 、版本 '3.1.0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59842740/