問題 §
昔作った.NET Core 1.1対応のASP.NET MVCアプリがある。
.NET Core 1.1はもうインストールされていないので、ターゲットのフレームワークを.NET 6に切り換えたらコンパイルエラーになる。(他のバージョンでもだいたいエラーだった)
原因 §
フレームワーク間に非互換性が存在すると思われる。
解決 §
- Starup.csを削除する
- 中味はVisual Studio 2022の"ASP.NET Core Web アプリ (Model-View-Controller)"プロジェクトを新規作成し、そのProgram.csで、Program.csを置き換える
- 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();を追加する。