デザイン時に Visual Studio Tools>Options メニューから、以前はエディット・アンド・コンティニュと呼ばれていたホットリロードを有効化または無効化することができます。 ホット リロード はデバッグ ビルドでのみ機能します。 詳細については、「 ホット リロード」を参照してください。
ネイティブ C++ の場合、ホット リロードには /INCREMENTAL オプションを使用する必要があります。 C++ の機能要件の詳細については、このブログ投稿とエディット コンティニュ (C++) を参照してください。
注
IntelliTrace が有効になっていて、IntelliTrace イベントと呼び出し情報の両方を収集する場合、ホット リロードは無効になります。 詳細については、「 IntelliTrace」を参照してください。
エディット コンティニュは、プログラムが中断モードの間にソース コードを変更できる、時間を節約する機能です。 [続行] や [ステップ] などの実行コマンドを選択してプログラムの実行を再開すると、エディット コンティニュによってコードの変更がいくつかの制限で自動的に適用されます。 これにより、停止、プログラム全体の再コンパイル、デバッグ セッションの再起動を行う代わりに、デバッグ セッション中にコードを変更できます。
デザイン時に Visual Studio の [オプション] ダイアログ ボックスで、Edit and Continue 機能を無効または有効にすることができます。 Edit and Continue 機能は、デバッグ ビルドでのみ動作します。 詳細については、「編集と継続」を参照してください。
ネイティブ C++ の場合、 エディット コンティニュ には /INCREMENTAL オプションを使用する必要があります。 C++ の機能要件の詳細については、このブログ投稿とエディット コンティニュ (C++) を参照してください。
注
IntelliTrace が有効であり、IntelliTrace イベントと呼び出し情報の両方を収集する場合、編集の継続は無効になります。 詳細については、「 IntelliTrace」を参照してください。
ホット リロードを有効にして構成する
ホット リロードを構成するには、[ホット リロード] ドロップダウン ボタンから [設定] を選択します。
または、[ツール>オプション] ウィンドウを開き>Debugging>.NET/C++ ホット リロード] セクションでオプションを調整します。 次のオプションを使用できます。
ホット リロードを有効にする: デバッガーがアタッチされた状態でアプリが実行されている場合は、.NET および C++ コードでホット リロード機能を使用します (F5)。
[続行時に自動的に変更を適用する (ネイティブのみ)]: Visual Studio は、中断状態からプロセスを続行するときに行った未処理のコード変更を自動的にコンパイルして適用します。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目を使用して変更を適用できます。
古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。
デバッグしない場合に有効にする: デバッガーをアタッチせずにアプリを実行するときにホット リロードを有効にします (Ctrl + F5)。
[ファイルの保存時に適用]: ファイルの保存時に変更を適用します。
ログの詳細度: ホット リロードが有効な場合のログ記録のレベルを設定します( 最小、 詳細、 診断)。
または、[ ツール>オプション ] ダイアログを開き、[ デバッグ>.NET/C++ ホット リロード ] セクションのオプションを調整します。 次のオプションを使用できます。
ホット リロードを有効にする: デバッガーをアタッチして起動するときにホット リロードを有効にします (F5)。
デバッグなしで起動するときにホット リロードを有効にする: デバッガーをアタッチせずに起動するときにホット リロードを有効にします (Ctrl + F5 キー)。
[ファイルの保存時にホット リロードを適用]: ファイルを保存するときにコードの変更を適用します。
ログの詳細度: [ホット リロード出力] ウィンドウに表示される情報の量を絞り込みます。
C++ の場合は、 Tools>Options>Debugging>General を開いて追加のオプションを設定できます。 [ホット リロードを有効にする] が選択されていることを確認し、他のオプションを設定します。
[続行時に変更を適用する (ネイティブのみ)]:Visual Studio は、中断状態からプロセスを続行するときに行った未処理のコード変更を自動的にコンパイルして適用します。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目を使用して変更を適用できます。
古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。
.NET ホット リロードの場合は、.NET 6+ プロジェクトのlaunchSetting.jsonファイルを変更し、 に設定することで、プロジェクト レベルでホット リロードを使用できるかどうかを制御することもできます。
例:
{
"profiles": {
"Console": {
"commandName": "Project",
"hotReloadEnabled": false
}
}
}
編集と続行を有効化または無効化する
デバッグ セッションの場合は、デバッグを停止します (Debug>Stop Debugging または Shift+F5)。
Tools>Options> (または Debug>Options) >Debugging>General で、右側のウィンドウで [編集と続行] を選択します。
注
IntelliTrace が有効であり、IntelliTrace イベントと呼び出し情報の両方を収集する場合、編集の継続は無効になります。 詳細については、「 IntelliTrace」を参照してください。
C++ コードの場合は、[ ネイティブ編集と続行を有効にする] が選択されていることを確認し、他のオプションを設定します。
[続行時に変更を適用する (ネイティブのみ)]:Visual Studio は、中断状態からプロセスを続行するときに行った未処理のコード変更を自動的にコンパイルして適用します。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目を使用して変更を適用できます。
古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。
[OK] を選択.
自動再起動の構成
ホット リロードでは、サポートされていない変更 (失礼な編集とも呼ばれます) が行われたときに、デバッグ セッション全体を終了するのではなく、アプリのプロセスを自動的に再起動できます。 これを有効にするには、プロジェクト ファイルを編集して、次のプロパティ宣言を追加します。
<PropertyGroup>
<HotReloadAutoRestart>true</HotReloadAutoRestart>
</PropertyGroup>
このプロパティは 、Directory.Build.props ファイルで設定することもできます。 自動再起動は、迅速なプロセスの再起動が可能なプロジェクトの種類 (たとえば、一部のアスパイア プロジェクトや Web プロジェクト) に対して機能するため、中断を最小限に抑えてデバッグを続行できます。
これはプロセス ベースの再起動です。 たとえば、複数のプロジェクトをデバッグしている場合、変更されたプロジェクトと依存プロジェクトのみが再構築され、再起動されます。
Razor のホット リロードを構成する
Roslyn プロセス内で Razor コンパイラをコホストすることで、ホット リロード中に .razor ファイルを編集する方が高速で効率的です。 また、コホストにより、ホット リロードを使用するときの全体的な信頼性も向上します。
共同ホストを有効にするには、[>オプション] を選択し、cohostを検索します。 [ Razor に Roslyn Cohost サーバーを使用する (再起動が必要)] 設定を選択または選択解除します。 このオプションを有効にする場合は、Visual Studio を再起動します。 Cohosting は既定で有効になっています。
コードの変更を停止する
ホット リロードがコード変更の適用中である間は、操作を停止できます。
エディット コンティニュがコード変更の適用中である間は、操作を停止できます。
注意事項
マネージド コードでコードの変更を停止すると、予期しない結果が発生する可能性があります。 通常、マネージド コードへの変更の適用は簡単なプロセスであるため、マネージド コードのコード変更を停止する必要はほとんどありません。
コード変更の適用を停止するには:
[デバッグ] メニューから [コード変更の適用を停止] を選択します。
このメニュー項目は、コードの変更が適用されている場合にのみ表示されます。
このオプションを選択した場合、コードの変更はコミットされていません。