次の方法で共有


ASP.NET Core の .NET ホット リロードのサポート

.NET ホット リロードでは、アプリを再起動することなく、アプリの状態を失うことなく、スタイル シートの変更を含むコード変更が実行中のアプリに適用されます。 ホット リロードは、.NET 6 以降のすべての ASP.NET Core でサポートされています。

通常、更新されたコードは、次の条件で有効にするために再実行されます。

  • 一部のスタートアップ ロジックは 1 回だけ実行されます。
    • コードの更新がインライン ミドルウェア デリゲートに対して行われる場合を除き、ミドルウェア。
    • 構成されたサービス。
    • コードの更新がルート ハンドラー デリゲート (たとえば、 OnInitialized) に対して行われる場合を除き、ルートの作成と構成。
  • Blazor アプリでは、フレームワークによってRazor コンポーネントのレンダリングが自動的にトリガーされます。
  • MVC および Razor Pages アプリでは、ホット リロードによってブラウザーの更新が自動的にトリガーされます。
  • Razor component パラメーター属性を削除しても、コンポーネントは再レンダリングされません。 アプリを再起動する必要があります。

サポートされているシナリオの詳細については、「 サポートされているコードの変更 (C# および Visual Basic)」を参照してください。

Blazor WebAssembly

Blazor WebAssembly ホット リロードでは、次のコード変更がサポートされています。

  • 新しい型。
  • 入れ子になったクラス。
  • 変数、式、ステートメントの追加、削除、編集など、メソッド本体に対するほとんどの変更。
  • ラムダ式とローカル関数の本体に対する変更。
  • 既存の型への静的メソッドとインスタンス メソッドの追加。
  • 既存の型に静的フィールド、インスタンス フィールド、イベント、およびプロパティを追加する。
  • 既存のメソッドに静的ラムダを追加する。
  • thisをキャプチャするラムダを、以前からthisをキャプチャしている既存のメソッドに追加します。

以前にコンポーネント パラメーターの値を設定した属性が削除されると、コンポーネントは破棄され、再初期化されて、削除されたパラメーターが既定値に戻されることに注意してください。

次のコード変更は、 Blazor WebAssembly アプリではサポートされていません。

Blazor WebAssembly ホット リロードでは、次のコード変更がサポートされています。

  • 新しい型。
  • 入れ子になったクラス。
  • 変数、式、ステートメントの追加、削除、編集など、メソッド本体に対するほとんどの変更。
  • ラムダ式とローカル関数の本体に対する変更。
  • 既存の型への静的メソッドとインスタンス メソッドの追加。
  • 既存の型への静的フィールドの追加。
  • 既存のメソッドに静的ラムダを追加する。
  • thisをキャプチャするラムダを、以前からthisをキャプチャしている既存のメソッドに追加します。

以前にコンポーネント パラメーターの値を設定した属性が削除されると、コンポーネントは破棄され、再初期化されて、削除されたパラメーターが既定値に戻されることに注意してください。

次のコード変更は、 Blazor WebAssembly アプリではサポートされていません。

  • 新しいawait演算子またはキーワード式yield追加します。
  • メソッド パラメーターの名前を変更する。
  • インスタンス (static以外の) フィールド、イベント、またはプロパティの追加。

Blazor WebAssembly ホット リロードでは、次のコード変更がサポートされています。

  • 変数、式、ステートメントの追加、削除、編集など、メソッド本体に対するほとんどの変更。
  • ラムダ式とローカル関数の本体に対する変更。

次のコード変更は、 Blazor WebAssembly アプリではサポートされていません。

  • 新しいラムダまたはローカル関数の追加。
  • 新しいawait演算子またはキーワード式yield追加します。
  • メソッド パラメーターの名前を変更する。
  • メソッド本体の外部の変更。
  • インスタンス (static以外の) フィールド、イベント、またはプロパティの追加。

.NET コマンドライン インターフェイス (CLI)

ホット リロードは、 dotnet watch コマンドを使用してアクティブ化されます。

dotnet watch

アプリのリビルドと再起動を強制するには、コマンド シェルでキーボードの組み合わせ Ctrl+R を使用します。

サポートされていないコード編集が行われた場合( 失礼な編集と呼ばれます)、 dotnet watch 、アプリを再起動するかどうかを確認するメッセージが表示されます。

  • はい: アプリを再起動します。
  • いいえ: アプリを再起動せず、変更を適用せずにアプリを実行状態のままにします。
  • 常に:失礼な編集が発生した場合は、必要に応じてアプリを再起動します。
  • なし: アプリを再起動せず、今後のプロンプトを回避します。

ホット リロードのサポートを無効にするには、 --no-hot-reload オプションを dotnet watch コマンドに渡します。

dotnet watch --no-hot-reload

ホット リロードを無効にする

Properties/launchSettings.jsonの次の設定では、ホット リロードが無効になります。

"hotReloadEnabled" : false

その他のリソース

詳細については、Visual Studio ドキュメントの次のリソースを参照してください。