エディット コンティニュの構成 (C#、VB、C++)
ホット リロード (以前はエディット コンティニュと呼ばれていました) は、デザイン時に Visual Studio の [オプション] ダイアログ ボックスで無効または有効にすることができます。 ホット リロードはデバッグ ビルドでのみ機能します。 詳細については、ホット リロードに関する記事を参照してください。
エディット コンティニュを使用すると、プログラムが中断モードのときにソース コードを変更できるため、時間を節約できます。 [続行] や [ステップ] などの実行コマンドを選択してプログラムの実行を再開すると、一定の制限の下で、エディット コンティニュによってコードの変更が自動的に適用されます。 このため、デバッグ セッション中にコードを変更できます。デバッグ セッションをいったん停止し、プログラム全体を再コンパイルしてからデバッグ セッションを再開する必要がありません。
エディット コンティニュは、デザイン時に Visual Studio の [オプション] ダイアログ ボックスで無効または有効にすることができます。 エディット コンティニュはデバッグ ビルドでのみ動作します。 詳細については、「エディット コンティニュ」を参照してください。
ネイティブ C++ の場合、 [エディット コンティニュ] には /INCREMENTAL
オプションを使用する必要があります。 C++ の機能要件の詳細については、このブログ投稿と「エディット コンティニュ (C++)」を参照してください。
ホット リロードを有効にして構成する
ホット リロードを構成するには、[ホット リロード] ドロップダウン ボタンから [設定] を選びます。
または、[ツール]>[オプション]>[デバッグ]>[.NET と C++ のホット リロード] を開きます。
Note
IntelliTrace が有効になっている場合に、IntelliTrace イベントと呼び出し情報の両方を収集すると、エディット コンティニュが無効になります。 詳細については、IntelliTrace に関するページを参照してください。
次のようなホット リロードの設定があります。
[Enable Hot Reload and Edit and Continue when debugging]\(デバッグ時にホット リロードとエディット コンティニュを有効にする\)。 デバッガーをアタッチした状態で起動するとき (F5) にホット リロードを有効にします。
[Enable Hot Reload when starting without debugging]\(デバッグなしで起動するときにホット リロードを有効にする\)。 デバッガーをアタッチしない状態で起動するとき (Ctrl + F5) にホット リロードを有効にします。
[Apply Hot Reload on File Save]\(ファイルの保存時にホット リロードを適用する\)。 ファイルを保存するときにコードの変更を適用します。
ログ記録の詳細度。 [ホット リロード出力] ウィンドウに表示される情報量をフィルター処理します。
.NET ホット リロードでは、.NET 6 以降のプロジェクトの launchSetting.json ファイルを変更し、hotReloadEnabled
を false
に設定すると、ホット リロードをプロジェクト レベルで使用できるかどうかも制御できます。
例:
{
"profiles": {
"Console": {
"commandName": "Project",
"hotReloadEnabled": false
}
}
}
C++ の場合は、[ツール]>[オプション]>[デバッグ]>[全般] を開いて、追加のオプションを設定できます。 [ホット リロードを有効にする] が選択されていることを確認し、その他のオプションを設定します。
[コンティニュに変更を適用する (ネイティブのみ)]
選択した場合は、ブレーク状態からデバッグを続行すると、Visual Studio によって自動的にコンパイルされ、コードの変更が適用されます。 そうしない場合は、 [デバッグ]>[コード変更を適用] を使用して変更の適用を選択できます。
[古いコードの警告を表示する (ネイティブのみ)]
選択した場合は、古いコードに関する警告が示されます。
エディット コンティニュを有効または無効にする
デバッグ セッション中は、デバッグを停止します ( [デバッグ]>[停止] 、または Shift+F5 キー)。
[ツール]>[オプション]> (または [デバッグ]>[オプション]) >[デバッグ]>[全般] を選び、右側のペインで [エディット コンティニュ] を選びます。
注意
IntelliTrace が有効になっている場合に、IntelliTrace イベントと呼び出し情報の両方を収集すると、エディット コンティニュが無効になります。 詳細については、IntelliTrace に関するページを参照してください。
C++ コードの場合は、 [ネイティブのエディット コンティニュを有効にする] が選択されていることを確認し、その他のオプションを設定します。
[コンティニュに変更を適用する (ネイティブのみ)]
選択した場合は、ブレーク状態からデバッグを続行すると、Visual Studio によって自動的にコンパイルされ、コードの変更が適用されます。 そうしない場合は、 [デバッグ]>[コード変更を適用] を使用して変更の適用を選択できます。
[古いコードの警告を表示する (ネイティブのみ)]
選択した場合は、古いコードに関する警告が示されます。
[OK] を選択します。
コード変更を停止する
コード変更を適用するプロセスをホット リロードで実行している間、その操作を停止できます。
エディット コンティニュがコード変更を適用するプロセスを実行している間、その操作は中断できます。
注意
マネージド コードのコード変更を中断すると、予期しない結果が生じることがあります。 通常、マネージド コードの変更はすばやく適用されるため、マネージド コードのコード変更の中断が必要となることはほとんどありません。
コードの変更内容の適用を停止するには
[デバッガー] メニューの [コード変更の適用を中止] をクリックします。
このメニュー項目は、コード変更の適用中にのみ表示されます。
このオプションを選択すると、コードの変更内容は一切コミットされません。