既存のASP.NET Core 3.アプリケーションがAzure App Serviceに正常にデプロイされています(AspNetCoreModuleV2
モジュールを使用)。アプリを(本日のリリース)ASP.NET Core 3.1にアップグレードした後、アプリケーションはIIS Expressのローカルバージョンで正しくビルドおよび実行されます。 (本日のリリース)Visual Studio 16.4を使用してAzure App Serviceに公開しようとすると、次のエラーが表示されます。
アセットファイル「C:\ Project\obj\project.assets.json」に「.NETCoreApp、Version = v3.0」のターゲットがありません。復元が実行され、プロジェクトのTargetFrameworksに「netcoreapp3.0」が含まれていることを確認します。
<PackageReference>
からMicrosoft.AspNetCore
、Microsoft.EntityFrameworkCore
、Microsoft.Extensions
は3.1.0
に更新されましたobj
フォルダーを削除して、参照が残っていないことを確認しました。3.1.100
のMicrosoft.PackageDependencyResolution.targets
バージョンから生成されています。somethingがまだ。NET Core 3.依存関係にぶら下がっていることがわかります。しかし、それが展開中にのみ問題を引き起こしている理由は不明です。 Azure App Service'sはまだ準備ができていません。NET Core 3.1?または、これは依存関係解決ターゲットの問題ですか?
元の質問で特定された当面の問題は、<TargetFramework>
が設定されている2つの場所があることに関係しています。
csproj
)pubxml
)<TargetFramework>
は、両方の場所で更新する必要があり、それらは正確に一致する必要があります。そうしないと、パブリッシングは、csjproj
ファイルのproject.assets.json
に基づいて構築された<TargetFramework>
ファイルでターゲットを見つけることができません。
注:
pubxml
ファイルが<TargetFramework>
セットのcsproj
ファイルですが、これはではありません。
この変更をテキストエディタで行うには、
~/Properties/PublishProfiles
フォルダーを開きます。*.pubxml
を開きます。<TargetFramework>
の値をnetcoreapp3.1
に変更します。<TargetFramework>netcoreapp3.1</TargetFramework>
Visual Studio 2019 IDEを介してこの変更を行うには、
netcoreapp3.1
に設定されていると仮定すると、その横にある編集アイコンをクリックします。netcoreapp3.1
に設定されていることを確認します。警告: IDEを使用しているときに、ここで問題が発生する場合があります。プロファイルを編集すると、プロジェクトファイル(つまり
netcoreapp3.1
)のnew値がすでに選択されていることがわかります。ただし、Saveをクリックすると、originalに戻ります値(たとえば、私の場合はnetcoreapp3.0
)。これは、インターフェイスの値を実際にchangeしなかったためです。VisualStudioは、基礎となる値。別の値を一時的に切り替えると(例:Configuration)、Visual Studioは変更が発生したことを認識し、両方の値が*.pubxml
ファイルで更新されます。
再度、正しい方向に向けてくれた@PanagiotisKanavosに感謝します(元のスレッドのコメントを参照)。
プロジェクトフォルダを開きます。
ファイルFolderProfile.pubxmlを開き、バージョン.を.1に変更します
netcoreapp3.1
最後に、公開する前にアプリケーションを再構築します
変化する
<PackageReferenceInclude="Microsoft.AspNetCore"Version="2.2.0" />
to
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
私のために働く。