Visual Studio 2019からAzureへのASP.NET Core 3.1サイトの発行エラー


9

(モジュールを使用して)Azure App Serviceに正常にデプロイされた既存のASP.NET Core 3.0アプリケーションがあります。アプリを(今日のリリースの)ASP.NET Core 3.1にアップグレードすると、アプリケーションはローカルバージョンのIIS Expressで正しくビルドおよび実行されます。(今日のリリースの)Visual Studio 16.4を使用してAzure App Serviceに公開しようとすると、次のエラーが表示されます。AspNetCoreModuleV2

アセットファイル「C:\ Project \ obj \ project.assets.json」に「.NETCoreApp、Version = v3.0」のターゲットがありません。復元が実行され、プロジェクトのTargetFrameworksに「netcoreapp3.0」が含まれていることを確認します。

ノート

  • すべて<PackageReference>のにMicrosoft.AspNetCoreMicrosoft.EntityFrameworkCoreMicrosoft.Extensionsに更新されました3.1.0
  • 私は自分のソリューションをクリーンアップし、objフォルダーを削除して、参照が残っていないことを確認しました。
  • このエラーはの3.1.100バージョンから生成されていMicrosoft.PackageDependencyResolution.targetsます。

.NET Core 3.0の依存関係にまだ何かが掛かっているようです。しかし、それが展開中にのみ問題を引き起こしている理由は明らかではありません。されているAzureのアプリケーションサービスですまだ準備ができていない、.NETのコア3.1?または、これは依存関係解決ターゲットの問題ですか?


これにタグを付けてくれて、@ Panagiotis Kanavosに感謝しますasp.net-core-3.1。新しいタグを作成するために必要な評判がありませんでした。
Jeremy Caney、

明らかに、次のステップは、新しいASP.NET Core 3.1プロジェクトテンプレートから始めて、新しいAzure Appサービスへのデプロイを試み、問題を再現できるようになるまで依存関係を再導入することです。今週後半までそれをする時間はありません。それまでは、他の誰かがこのタイプのエラーについてある程度の洞察を持っているか、自分で解決策を見つけてくれることを望んでいました。
Jeremy Caney、

ドキュメントは、.NET Core SDKバージョンを明示的に選択する方法を示しています。試しましたか?3.1 SDKはリストに表示されますか?
Panagiotis Kanavos

@PanagiotisKanavos:このプロジェクトは、まだAzure Pipelinesを使用して公開されていません。それは、これは、言わないがあることを思い出させる<TargetFramework>で設定pubxmlすることをプロファイルVisual Studioは、私が上の間隔に依存しているが、。おっとっと!それをターゲットnetcoreapp3.1に一致するように変更csprojすると、直接の問題が解決します。(これにより、Azure App Service自体がターゲットでトリップするという新しい問題が発生しますが、おそらく、提供したリンクと同様に、自己完結型のデプロイメントを使用することで解決できます。)正しい方向を教えてくれてありがとうございます!
Jeremy Caney、

1
この質問(および回答)を見つけてくれてありがとう。私はこのような問題に遭遇し続けるためだけに(推奨と励ましの)最先端のMSの変更を採用することにかなり不満を感じ始めています。
フランク

回答:


13

元の質問で特定された当面の問題は、2つの場所<TargetFramework>が設定されていることに関係しています。

  1. プロジェクトファイル(例えば、csproj
  2. 出版プロファイル(すなわち、pubxml

<TargetFramework>更新する必要があります両方の場所、そして、彼らは一致している必要があります正確に。そうしないと、パブリッシングはproject.assets.jsonファイル内のターゲットを見つけることができません。ファイル<TargetFramework>内のに基づいて構築されcsjprojます。

注:pubxmlファイルがファイル内の<TargetFramework>セットに従うことを期待しているかもしれませんが、そうcsprojではありません

テキストエディタ

この変更をテキストエディタで行うには、

  1. ~/Properties/PublishProfilesフォルダを開きます。
  2. *.pubxml編集するを開きます。
  3. の値を<TargetFramework>に変更しますnetcoreapp3.1
<TargetFramework>netcoreapp3.1</TargetFramework>

Visual Studio 2019

Visual Studio 2019 IDE を介してこの変更を行うには、

  1. Webワンクリック発行ツールバー(発行アイコンの右側にあります)の歯車アイコンをクリックします。
  2. 仮定すると、ターゲットフレームワークをされていないに設定されnetcoreapp3.1、その隣にある編集アイコンをクリックしてください。
  3. ターゲットフレームワークがに設定されていることを確認しnetcoreapp3.1ます。
  4. 保存をクリックします

警告: IDEを使用すると、ここで問題が発生する可能性があります。プロファイルを編集すると、プロジェクトファイル(つまり、)の新しい値がnetcoreapp3.1既に選択されていることがわかります。ただし、[保存 ]をクリックすると、元の値に戻ります(たとえば、netcoreapp3.0私の場合)。これは、インターフェイスの値を実際に変更しなかったためです。VisualStudioは、基になる値に変更がないと誤解しています。別の値(例: Configuration)を一時的に切り替えると、Visual Studioは変更が発生したことを認識し、両方の値が*.pubxmlファイルで更新されます。

再度、正しい方向に向けてくれた@PanagiotisKanavosに感謝します(元のスレッドのコメントを参照)。


解決策を投稿していただきありがとうございます!私が昨夜出版しようとしたときこれに苦労していました、そしてそれはまったく意味がありませんでした。パブリッシュウィザードでは常に3.1がターゲットとして選択されていたので、問題がないと思いましたが、pubx説明したようにファイルを開くと、3.0のままでした。とてもイライラします。正直なところ、VS 16.3と.NET Core 3.0がリリースされて以来、私は奇妙で曖昧で、止まるバグと問題を完全に示してきました。再度、感謝します!
Gup3rSuR4c

これも取得しているとしたら、フレームワークに依存するように公開するように指示すると、フレームワーク全体を一緒に公開することに決めるのは、とても素晴らしいことです。1分程度であるはずの発行が15分以上になりました...
Gup3rSuR4c

参考:最初にこれを投稿して以来、MicrosoftAzure App Servicesを更新して、.NET Core 3.1のネイティブサポートを提供していますHTTP Error 500.30 - ANCM In-Process Start Failureそこで、元のメッセージからメッセージに関する警告を削除しました。以前は、完全に自己完結型のアプリケーションの配布を公開する必要がありました。(とはいえ、.NET Coreの新しいバージョンがドロップされてからAzure App Service環境に統合されるまでには通常2〜3日の遅れがあります。そのため、これは将来の更新で知っておくと役立ちます。)
Jeremy Caney

1
プロジェクトのプロパティでフレームワークのバージョンを更新しただけで、.pubxmlファイルについても気になりませんでした。これにより、パブリッシュがハングしました。.pubxmlを「netcoreapp3.1」に更新した後、正常に機能しました。ありがとう
demoncodemonkey

2

プロジェクトフォルダを開きます。

  • フォルダの[プロパティ] >> [PublishProfiles]に移動します
  • ファイルFolderProfile.pubxmlを開き、バージョン3.03.1に変更します

    netcoreapp3.1

  • 最後に、公開する前にアプリケーションを再構築します


pubxmlファイルを手動で変更するための明示的な指示を提供すること、そして特にVisual Studio 2019 GUIを介してこれらの値を変更するという間抜けさを考えると良い呼びかけです。これらの詳細を元の回答に組み込んだので、このオプションは明確に説明されています。ありがとうございました!
Jeremy Caney

0

変化する

<PackageReferenceInclude="Microsoft.AspNetCore"Version="2.2.0" />
 to 
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />

私のために働く。


1
以下のためにASP.NETコア3.1、すべてのMicrosoft.AspNetCoreライブラリがに更新する必要があり3.1.0、MicrosoftのV3.1のリリースノートに従って、。あなたのアプローチは、ASP.NET Core 2.2の同様の問題に対する有効な修正である可能性があります。エラーは、私の場合のように、ファイルcsprojpubxファイルの不一致によって引き起こされたものではないと想定しています。
Jeremy Caney

上記の2つのパッケージのバージョンは現在2.2.0であり、最新バージョンとしてマークされています。
Libertad

1
@Libertad、最新のドットネットコア3.1バージョンを表示するには、ビジュアルスタジオのインストールをバージョン16.4.0にアップグレードする必要があります
navule

@navule私のVSは最新です。上記のパッケージは単なるnugetパッケージです。これを見てみましょう:nuget.org/packages/Microsoft.AspNetCore とその最新バージョン
Libertad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.