Linux Azure WebAppの指定されたフレームワーク 'Microsoft.AspNetCore.App'、バージョン '3.1.0'が見つかりませんでした


9

問題

Azureで.Net Core 2.2 Linux Webアプリを.Net Core 3.1にアップグレードすると、アプリケーションがSpecified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not foundエラーでダウンします。.Net Core 3.1を使用して新しいLinux Webアプリを作成するまで、さらにbashコマンドプロンプトがdotnet --list-runtimesとして出力されていました2.2.7

細部

ウェブサイトダウン

アプリケーションエラー

ログストリーム

.net core 3.1が見つからないため、レポートアプリケーションがダウンしています。

ログストリーム

新しい.netコアWebアプリを作成しました

3.1 North Centralのlinux webapp、同じ問題

新しいWebアプリを作成しました

米国北中部で実行されていることを確認

https://aspnetcoreon.azurewebsites.net/によると、完全な.netCore 3.1サポートが必要です

それでも.netコア2.2.7 コマンドプロンプト2.2.7

opt/dotnet/runtimes 3、3.0、3.0.0をリストしますが、3.1はリストしません ` ここに画像の説明を入力してください

環境変数

FRAMEWORK_VERSION = lts3.1ではなく、Azureリストの環境変数

出版

これは、Azure AppService Deployタスクを使用してazure devops ciパイプラインから公開されました。3.1はここでは利用できなかったので、LTS

Devopsリリースパイプライン

アップデート1

犯人はAzure Devops Web App / Web Serviceタスクのフレームワークスタックから3.1不足しているようです。

CIから公開するたびに、Webアプリフレームワークは、このドロップダウンで選択されたものに更新されます。Azure Web Appでフレームワークを手動で3.1に変更すると、サイトが表示されます。ただし、フレームワークをciの設定に戻すため、次の発行はダウンします。

新しい質問

Azure Devopsリリースパイプラインを取得して.net core 3.1タスクを公開するにはどうすればよいですか?

アップデート2

関連するAzure Devopsフォーラムの投稿

2020年2月23日現在調査中

.Net Core 3.1はパイプラインをLinux App Serviceにデプロイします

推奨される回避策

  1. リリースパイプラインにYMLを使用し、バージョンをから3.0に手動で変更3.1します。回答とこのスレッドで示されます
  2. framework dependentリリースからにアップグレードしself containedます。参照
  3. .NetCore 3.0にダウングレード

LTSを使用する代わりに、latestを使用してみてください(推奨されませんが、とにかく試してみて、動作するかどうかを確認します)
マニッシュ

私はそうしました、そしてそれはうまくいきませんでした。しかし、CIが問題のようです。CIで公開するたびに、それはWebアプリのフレームワークをCIで選択されたものに変更します。CIの発行後にアプリサービスに移動し、ランタイムスタックを手動で3.1に変更すると、サイトは次の発行まで表示されます。
w00ngy

コード、データ、エラーメッセージなどの画像を投稿しないでください。質問にテキストをコピーまたは入力してください。質問方法
ロブ

回答:


2

同じ状況に遭遇しましたが、提供された情報を使用して、Devops Pipelines Build .ymlファイルに手動で値を設定することで問題を修正できました。ランタイムスタックドロップダウンの値が欠けているようです。ビルドプロセスの.ymlファイルを手動で更新すると、次のようになります。

ここに画像の説明を入力してください

これにより、適切なフレームワークのバージョンが選択されます。うまくいけば、Azure Devops CIパイプラインのデプロイに関する問題が修正されます。


これで解決できるのかしら。それを試してみます。自分のリリース全体をymlに変換するのは少し手間がかかるので、まだ試していません。結果をお知らせします!感謝の気持ちを!!
w00ngy

2
文字列DOTNETCORE | 3.1を[Runtime Stack]ボックスに直接入力することが可能であるようです(これにより問題が解決します)。リリースパイプラインをyamlに変換する必要はありません。
rdavisau

私は@rdavisauと同じことを言っていました-最も簡単な修正は、3.1バージョンを[ランタイムスタック]ボックスに上書きすることです。
アップルビー

コード、データ、エラーメッセージなどの画像を投稿しないでください。質問にテキストをコピーまたは入力してください。質問方法
ロブ

rdavisau-これで私は多くの時間を節約できたでしょう!笑。
w00ngy

1

より簡単な解決策はDOTNETCORE|3.1、devopsの[Runtime Stack]ドロップダウンに入力することです。(rdavisauに感謝!)

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.