ASP.NET Core の .NET ホット リロード サポート
.NET ホット リロードを使用すると、スタイルシートに加えられた変更を含むコードの変更が、アプリを再起動したり、アプリの状態を失うことなく、実行中のアプリに適用されます。 ホット リロードは、ASP.NET Core 6.0 以降のすべてのプロジェクトでサポートされています。
通常、更新されたコードは次の条件で再実行され、有効になります。
- 一部のスタートアップ ロジックは、1 回しか実行されません。
- ミドルウェア。コードの更新がインライン ミドルウェア デリゲートに対するものである場合を除きます。
- 構成済みのサービス。
- ルートの作成と構成。コードの更新がルート ハンドラー デリゲート (
OnInitialized
など) に対するものである場合を除きます。
- Blazor アプリでは、フレームワークによって Razor コンポーネントのレンダリングを自動的にトリガーされます。
- MVC および Razor Pages アプリでは、ホット リロードによってブラウザーの更新が自動的にトリガーされます。
- RazorRazor属性を削除しても、コンポーネントは再レンダリングされません。 アプリを再起動する必要があります。
サポートされているシナリオの詳細については、「サポートされているコード変更 (C# および Visual Basic)」を参照してください。
Blazor WebAssembly
Blazor WebAssembly ホット リロードでは、次のコード変更がサポートされます。
- 新しい型。
- 入れ子になったクラス。
- 変数、式、ステートメントの追加、削除、編集など、メソッド本体に対するほとんどの変更。
- ラムダ式とローカル関数の本体に対する変更。
- 既存の型への静的およびインスタンス メソッドの追加。
- 既存の型への静的フィールド、インスタンス フィールド、イベント、プロパティの追加。
- 既存のメソッドへの静的ラムダの追加。
- 既に
this
をキャプチャした既存のメソッドへのthis
をキャプチャするラムダの追加。
以前にコンポーネント パラメーターの値を設定した属性が削除されると、コンポーネントは破棄され、再初期化されて、削除されたパラメーターが既定値に戻されることにご注意ください。
次のコード変更は、Blazor WebAssembly アプリではサポートされていません。
- 新しい
await
演算子またはyield
キーワード式の追加。 - メソッド パラメーターの名前の変更。
Blazor WebAssembly ホット リロードでは、次のコード変更がサポートされます。
- 新しい型。
- 入れ子になったクラス。
- 変数、式、ステートメントの追加、削除、編集など、メソッド本体に対するほとんどの変更。
- ラムダ式とローカル関数の本体に対する変更。
- 既存の型への静的およびインスタンス メソッドの追加。
- 既存の型への静的フィールドの追加。
- 既存のメソッドへの静的ラムダの追加。
- 既に
this
をキャプチャした既存のメソッドへのthis
をキャプチャするラムダの追加。
以前にコンポーネント パラメーターの値を設定した属性が削除されると、コンポーネントは破棄され、再初期化されて、削除されたパラメーターが既定値に戻されることにご注意ください。
次のコード変更は、Blazor WebAssembly アプリではサポートされていません。
- 新しい
await
演算子またはyield
キーワード式の追加。 - メソッド パラメーターの名前の変更。
- インスタンス (非
static
) フィールド、イベント、またはプロパティの追加。
Blazor WebAssembly ホット リロードでは、次のコード変更がサポートされます。
次のコード変更は、Blazor WebAssembly アプリではサポートされていません。
- 新しいラムダまたはローカル関数の追加。
- 新しい
await
演算子またはyield
キーワード式の追加。 - メソッド パラメーターの名前の変更。
- メソッド本体の外部の変更。
- インスタンス (非
static
) フィールド、イベント、またはプロパティの追加。
.NET CLI
ホット リロードは、dotnet watch
コマンドを使用してアクティブ化されます。
dotnet watch
アプリを強制的にリビルドして再起動するには、コマンド シェルでキーボードの組み合わせ Ctrl+R を使用します。
"Rude 編集" と呼ばれるサポートされていないコード編集が行われると、アプリを再起動するかどうかを尋ねるメッセージが dotnet watch
によって表示されます。
- はい: アプリを再起動します。
- いいえ: アプリの再起動は行いません。変更を適用せずに、アプリを実行したままとします。
- 常時: Rude 編集が行われると、必要に応じてアプリを再起動します。
- なし: アプリの再起動を行わず、今後のプロンプトを回避します。
ホット リロードのサポートを無効にするには、dotnet watch
コマンドに --no-hot-reload
オプションを渡します。
dotnet watch --no-hot-reload
ホット リロードを無効にする
Properties/launchSettings.json
で次の設定を行うと、ホット リロードが無効になります。
"hotReloadEnabled" : false
その他のリソース
詳細については、Visual Studio ドキュメントの次のリソースを参照してください。
ASP.NET Core