Visual Studio 2019 を使っているのに新規プロジェクトで「ASP.NET Core Web アプリケーション」が見当たらない――。そんな時は、インストール構成の抜けやテンプレートキャッシュの破損など、いくつかの典型原因が考えられます。本記事は再現性の高いチェック手順と修復コマンドをまとめ、最短でテンプレートを復活させるための実践ガイドとしてお届けします。
状況の整理:よくある症状と前提
本記事が対象とするケースは次のとおりです。
- Visual Studio 2019 をインストール済み。
- インストール時に「ASP.NET と Web 開発」「.NET Core クロスプラットフォーム開発」を選んだ記憶がある。
dotnet --versionでは .NET Core 3.1(例:3.1.426)が表示される。- それでも「新しいプロジェクトの作成」ダイアログに 「ASP.NET Core Web アプリケーション」 が出てこない。
結論からいえば、ほとんどのケースは Visual Studio 側(インストーラーの構成・個別コンポーネント・テンプレートキャッシュ・拡張機能)の問題に帰着します。以降の手順を上から順に試すことで、ほぼ確実に復旧できます。
まずは全体俯瞰:原因パターンと対処早見表
| 症状・状況 | 想定原因 | 最短の対処 | 所要目安 | 備考 |
|---|---|---|---|---|
| テンプレートだけ見当たらない | VS のテンプレートキャッシュ破損 | テンプレートキャッシュ削除 → VS 再起動 | 3〜5分 | 詳細は「テンプレートキャッシュ再構築」を参照 |
| 検索してもヒットしない/フィルタが偏っている | 新規プロジェクト画面のフィルタ設定 | 言語を「C#」、プラットフォームを「Windows」、種類を「Web」に変更 | 1分 | 検索欄に「asp.net core」と入力してもよい |
| CLIでは作れるが VS に出ない | ワークロード未追加/部分的インストール | インストーラーで必要ワークロードと個別コンポーネントを追加 | 10〜30分 | ネットワーク環境により変動 |
| VS 自体が不安定 | 拡張機能の衝突/構成破損 | セーフモード起動 → 修復 | 5〜20分 | devenv /safemode で確認 |
| 3.1 でのデバッグが失敗 | 開発用 HTTPS 証明書が未信頼 | dotnet dev-certs https --trust | 1分 | 初回起動の確認ダイアログで「Yes」を選ぶ |
| 社内 PC で追加ダウンロードが失敗 | プロキシ/WSUS によるブロック | オフラインレイアウトを作成して展開 | 30〜60分 | 後半の「オフライン導入」参照 |
最短復旧のためのクイックチェック
- フィルタを初期化:新規プロジェクト画面の右上検索に「asp.net core」と入力。左側フィルタを「C# / Windows / Web」にする。
- CLIでテンプレートがあるか確認:
dotnet new --list | findstr /i "web aspnet" dotnet new mvc -n VsTemplateCheckAppこれでプロジェクトが作成できれば SDK 側は正常。VS 側の表示問題に切り分けできます。 - テンプレートキャッシュの再構築(後述の手順 1〜2)。
- 必要ワークロード・個別コンポーネントの追加(後述の表を参照)。
- Visual Studio の修復(インストーラーの修復機能)。
根本から整える:正攻法の復旧手順
Visual Studio 2019 のバージョンを最新の 16.11 系へ
古いビルドではテンプレートの構成が異なる場合があります。まずはバージョンを確認し、16.11 系の最新更新に上げましょう。
- Visual Studio 上部メニューの [ヘルプ] → [Microsoft Visual Studio について] でバージョンを確認。
- Visual Studio Installer を起動し、対象の 2019 エディションの [更新] を実行。
必要ワークロード・個別コンポーネントの確認
ASP.NET Core のテンプレートは、以下のワークロード/コンポーネントが有効であることが前提です。
| 区分 | 名称(インストーラー表記) | 備考 |
|---|---|---|
| ワークロード | ASP.NET と Web 開発 | 必須 |
| ワークロード | .NET Core クロスプラットフォーム開発 | 必須 |
| 個別コンポーネント | .NET Core 3.1 SDK / ランタイム / テンプレート | 3.1 を使うなら有効に |
| 個別コンポーネント | .NET Core 3.1 Targeting Pack | 3.1 のターゲット指定に必要 |
| 個別コンポーネント | IIS Express | デバッグで使用 |
インストーラーでは [変更] → [ワークロード] タブでチェック → [修正] を実行し、追加ダウンロードを完了させます。企業環境でプロキシ配下の場合、後述のオフラインレイアウトが確実です。
テンプレートキャッシュの再構築(最も効く!)
テンプレート一覧はローカルのキャッシュが壊れると表示されなくなります。以下を実施してください。
- Visual Studio をすべて終了。
- 次のフォルダを削除(存在するもののみ)。
C:\Users\<ユーザー名>\AppData\Local\Microsoft\VisualStudio\16.0_*\TemplateCacheC:\Users\<ユーザー名>\AppData\Local\Microsoft\VisualStudio\16.0_*\ItemTemplatesCacheC:\Users\<ユーザー名>\AppData\Local\Microsoft\VisualStudio\16.0_*\ProjectTemplatesCache - 「開発者用コマンド プロンプト for VS 2019」を管理者で開き、次を順に実行:
devenv /updateconfiguration devenv /installvstemplates devenv /setup - VS を起動し、新規プロジェクト画面で再検索(「asp.net core」)。
CLI でテンプレート自体がインストールされているか検証
SDK 側にテンプレートがあるかは CLI が最短で判断できます。
dotnet --info
dotnet new --list | findstr /i "aspnet web"
dotnet new webapp -n WebAppDemo
dotnet new mvc -n MvcDemo
dotnet new webapi -n ApiDemo
ここでいずれかが正常に生成されるなら、SDK とテンプレートはインストール済みです。Visual Studio の表示に絞って対処します。
Visual Studio の修復とセーフモード確認
- インストーラーで対象エディションの [その他] → [修復] を実行。
- それでも改善しなければ、拡張機能の衝突を疑い、次を試す:
devenv /safemodeセーフモードでテンプレートが見える場合は、拡張機能を一度すべて無効化し、徐々に有効化して原因を特定します。 - 設定破損が疑わしい場合は初期化:
devenv /resetsettings
HTTPS 開発用証明書を信頼済みにする
テンプレート再表示後、初回のデバッグで「開発用証明書を信頼しますか?」が出たら [Yes] を選択。誤って [No] にした場合は次で再設定します。
dotnet dev-certs https --clean
dotnet dev-certs https --trust
「新しいプロジェクトの作成」で見落としがちな操作
- 検索ボックスに
asp.net core、webを入力。 - 言語:C#、プラットフォーム:Windows、プロジェクトの種類:Web を選択。
- 似た名称の「ASP.NET Web アプリケーション(.NET Framework)」と混同しない(Core ではない)。
- プレビュー SDK のみが入っている場合は、[ツール] → [オプション] → [プロジェクトおよびソリューション] → [.NET Core] の「プレビュー版 SDK の使用を許可する」を確認。
ケース別の深掘りトラブルシューティング
1) SDK はあるが VS にテンプレートが出ない
最も多いのは Visual Studio 側の構成不足またはキャッシュ破損です。次の順で確実に直します。
- テンプレートキャッシュの削除(前述)。
- 個別コンポーネント「.NET Core 3.1 Targeting Pack」「.NET Core 3.1 SDK / ランタイム / テンプレート」を追加。
- ASP.NET と Web 開発/.NET Core クロスプラットフォーム開発が入っているか再確認。
- 修復 → 再起動。
2) 企業ネットワークでダウンロードに失敗する
プロキシや WSUS 配下ではインストーラーの追加取得が失敗することがあります。オフラインレイアウトを作ると確実です(管理者向け)。
- インターネット接続のある PC でインストーラーを取得。
- コマンド例(エディションに応じてファイル名は読み替え):
vs_Professional.exe --layout C:\VS2019Layout --lang ja-JP en-US - レイアウトを社内共有へ配置し、対象 PC ではそこから
setup.exeを起動。 - ワークロードと個別コンポーネントを選んでインストール/修復。
3) 旧/別バージョンの VS と併用している
複数の Visual Studio を同居させている環境では、テンプレートキャッシュが競合することがあります。2019 のキャッシュを削除し、上記の devenv コマンド 3 連(/updateconfiguration → /installvstemplates → /setup)で再構築すると改善します。
4) プロジェクトは作れるのにビルドが失敗する
この場合はテンプレート問題ではなく、ターゲットフレームワークや NuGet の復元、SDK バージョン(global.json)の影響を疑います。
*.csprojの<TargetFramework>を確認(例:netcoreapp3.1)。- ソリューション ディレクトリ直下に
global.jsonがあると、未インストールの SDK バージョンを要求してビルド不能になることがあります。CLI のdotnet --list-sdksと照合してください。 - パッケージ復元の失敗は [表示] → [出力] で Package Manager ログを確認。
運用上のベストプラクティス
テンプレートが消えるリスクを減らす設定・習慣
- 大型更新や拡張機能の導入前に、
%LOCALAPPDATA%\Microsoft\VisualStudio\16.0_*\をバックアップ。 - 拡張機能は必要最小限に。症状が出たらセーフモードで切り分け。
- インストーラーの更新を定期的に実行(同じ 16.11 系でも細かい修正が入ります)。
ログで原因を追う
VS 側のエラーはアクティビティログで追えます。
devenv /log
標準では %APPDATA%\Microsoft\VisualStudio\16.0_*\ActivityLog.xml に出力されます。テンプレート構築エラーや拡張機能のロード失敗が記録されます。
補足:.NET 3.1 の扱いと今後の推奨
.NET Core 3.1 は既にサポートが終了しています。セキュリティや将来の移行コストを考えると、現行の LTS(例:.NET 8、もしくは以降の LTS)を前提にした新規開発を推奨します。既存の 3.1 プロジェクトは、段階的にターゲットフレームワークを引き上げましょう。
| シナリオ | 推奨対応 | ポイント |
|---|---|---|
| 新規開発 | 最新 LTS(例:.NET 8 など)を選択 | 長期サポートで運用負荷を低減 |
| 既存 3.1 の保守 | ビルドを維持しつつ段階移行(3.1 → 6/8 以降) | API 互換性の差異をリリース単位で吸収 |
| VS 2019 固定が必要 | テンプレート復旧手順をマニュアル化 | キャッシュ削除/修復の運用を定例化 |
チェックリスト:本当にやるべきことだけを凝縮
| チェック項目 | 手順・コマンド | 合格基準 |
|---|---|---|
| VS 2019 のバージョン | 16.11 系の最新更新までアップデート | 「16.11.x」を確認 |
| ワークロード | 「ASP.NET と Web 開発」「.NET Core クロスプラットフォーム開発」にチェック | 両方がインストール済み |
| 個別コンポーネント | .NET Core 3.1 SDK / ランタイム / テンプレート、Targeting Pack | 必要なターゲットが選択済み |
| テンプレートキャッシュ | TemplateCache 等の削除 → devenv コマンド 3 連 | 新規作成でテンプレートが再表示 |
| CLI の健全性 | dotnet new --list / dotnet new mvc -n TestApp | プロジェクト生成が成功 |
| HTTPS 証明書 | dotnet dev-certs https --trust | ブラウザ警告なしでローカル起動 |
うまくいかない時の最後の一押し
- Windows Update:Visual C++ 再頒布可能パッケージや .NET 関連の更新が不足すると、テンプレート読み込みに失敗することがあります。OS 更新も並行実施。
- ユーザープロファイルの整合性:新しいローカルユーザーを作り、同手順を試すとプロファイル依存の問題を切り分けできます。
- 権限:会社 PC ではインストールや証明書の信頼に管理者権限が必要です。
実践サンプル:ゼロからテンプレートを復活させる一連の流れ
- VS を閉じ、テンプレートキャッシュ 3 フォルダを削除。
- 開発者用コマンド プロンプト(管理者)で次を実行:
devenv /updateconfiguration devenv /installvstemplates devenv /setup - Visual Studio Installer を起動し、ASP.NET と Web 開発/.NET Core クロスプラットフォーム開発にチェック、.NET Core 3.1 Targeting Pack を含む個別コンポーネントを選択、修正を適用。
- VS を起動し「新しいプロジェクトの作成」→ 検索に「asp.net core」→ テンプレートを選択して作成。
- 初回デバッグで HTTPS 証明書の確認に [Yes]。
付録:コマンド・フォルダ位置まとめ
| 目的 | コマンド/パス | 説明 |
|---|---|---|
| SDK 情報の確認 | dotnet --info | インストール済み SDK/ランタイムを一覧 |
| テンプレート一覧 | dotnet new --list | CLI からテンプレートの有無を確認 |
| テンプレートキャッシュ削除 | %LOCALAPPDATA%\Microsoft\VisualStudio\16.0_*\TemplateCache | 存在すれば削除 |
| テンプレート再登録 | devenv /installvstemplates | VS のテンプレートを再構築 |
| 構成更新 | devenv /updateconfiguration | ローカル構成を再生成 |
| 全体セットアップ | devenv /setup | VS の初期セットアップを再実施 |
| セーフモード | devenv /safemode | 拡張機能を読み込まず起動 |
| 設定初期化 | devenv /resetsettings | VS のユーザー設定を既定に戻す |
| アクティビティログ | %APPDATA%\Microsoft\VisualStudio\16.0_*\ActivityLog.xml | テンプレート読込エラー等の痕跡あり |
| HTTPS 証明書 | dotnet dev-certs https --trust | ローカル開発用証明書を信頼に設定 |
まとめ:順番がカギ
「ASP.NET Core Web アプリケーション」テンプレートが表示されない問題は、テンプレートキャッシュ → ワークロード/個別コンポーネント → インストール修復 → セーフモード切り分け → CLI 検証の順で取り組むと最短で解決します。既に .NET Core 3.1 SDK が入っていても、Visual Studio 側にテンプレートを示すための構成が欠けていれば画面には現れません。まずは本記事のチェックリストを上から実施し、それでも難しい場合はオフラインレイアウトやログ解析で確実に原因へ到達してください。新規案件では最新 LTS を前提に、将来の保守性を見据えた構成を心掛けましょう。

コメント