2021年11月07日
川俣晶の縁側ソフトウェア技術雑記 total 2830 count

.NET Core 1.1対応のASP.NET MVCアプリが.NET 6で使えない

Written By: 川俣 晶連絡先

問題 §

 昔作った.NET Core 1.1対応のASP.NET MVCアプリがある。

 .NET Core 1.1はもうインストールされていないので、ターゲットのフレームワークを.NET 6に切り換えたらコンパイルエラーになる。(他のバージョンでもだいたいエラーだった)

原因 §

 フレームワーク間に非互換性が存在すると思われる。

解決 §

  1. Starup.csを削除する
  2. 中味はVisual Studio 2022の"ASP.NET Core Web アプリ (Model-View-Controller)"プロジェクトを新規作成し、そのProgram.csで、Program.csを置き換える
  3. using不足でエラーが発生するので、インテリセンスで不足usingを追加する

 これでコンパイル可能になる。

注意 §

 新テンプレートとして使用するプロジェクトの名前は必ず"ASP.NET Core Web アプリ (Model-View-Controller)"である。(Model-View-Controller)を含まない名前の似たようなプロジェクトもあるが、ルーティング設定の中味が違うので選ばない。

追加のタスク §

 実行しても"InvalidOperationException: No service for type 'Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet' has been registered."という

メッセージがWebブラウザに出てくる場合は、ApplicationInsightsの登録が不足している。

 Program.csのbuilder.Services.AddControllersWithViews();の後に、builder.Services.AddApplicationInsightsTelemetry();を追加する。