次の方法で共有


Edit and Continue の設定 (C#、VB、C++)

デザイン時に 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)。

  • [ファイルの保存時に適用]: ファイルの保存時に変更を適用します。

  • ログの詳細度: ホット リロードが有効な場合のログ記録のレベルを設定します( 最小詳細診断)。

Visual Studio での .NET C++ ホット リロードの設定のスクリーンショット。

または、[ ツール>オプション ] ダイアログを開き、[ デバッグ>.NET/C++ ホット リロード ] セクションのオプションを調整します。 次のオプションを使用できます。

  • ホット リロードを有効にする: デバッガーをアタッチして起動するときにホット リロードを有効にします (F5)。

  • デバッグなしで起動するときにホット リロードを有効にする: デバッガーをアタッチせずに起動するときにホット リロードを有効にします (Ctrl + F5 キー)。

  • [ファイルの保存時にホット リロードを適用]: ファイルを保存するときにコードの変更を適用します。

  • ログの詳細度: [ホット リロード出力] ウィンドウに表示される情報の量を絞り込みます。

.NET ホット リロードの設定のスクリーンショット。

C++ の場合は、 Tools>Options>Debugging>General を開いて追加のオプションを設定できます。 [ホット リロードを有効にする] が選択されていることを確認し、他のオプションを設定します。

  • [続行時に変更を適用する (ネイティブのみ)]:Visual Studio は、中断状態からプロセスを続行するときに行った未処理のコード変更を自動的にコンパイルして適用します。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目を使用して変更を適用できます。

  • 古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。

.NET ホット リロードの場合は、.NET 6+ プロジェクトのlaunchSetting.jsonファイルを変更し、 に設定することで、プロジェクト レベルでホット リロードを使用できるかどうかを制御することもできます。

例:

{
  "profiles": {
    "Console": {
      "commandName": "Project",
      "hotReloadEnabled": false
    }
  }
}

編集と続行を有効化または無効化する

  1. デバッグ セッションの場合は、デバッグを停止します (Debug>Stop Debugging または Shift+F5)。

  2. Tools>Options> (または Debug>Options) >Debugging>General で、右側のウィンドウで [編集と続行] を選択します。

    IntelliTrace が有効であり、IntelliTrace イベントと呼び出し情報の両方を収集する場合、編集の継続は無効になります。 詳細については、「 IntelliTrace」を参照してください。

  3. C++ コードの場合は、[ ネイティブ編集と続行を有効にする] が選択されていることを確認し、他のオプションを設定します。

    • [続行時に変更を適用する (ネイティブのみ)]:Visual Studio は、中断状態からプロセスを続行するときに行った未処理のコード変更を自動的にコンパイルして適用します。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目を使用して変更を適用できます。

    • 古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。

  4. [OK] を選択.

自動再起動の構成

ホット リロードでは、サポートされていない変更 (失礼な編集とも呼ばれます) が行われたときに、デバッグ セッション全体を終了するのではなく、アプリのプロセスを自動的に再起動できます。 これを有効にするには、プロジェクト ファイルを編集して、次のプロパティ宣言を追加します。

<PropertyGroup>
  <HotReloadAutoRestart>true</HotReloadAutoRestart>
</PropertyGroup>

このプロパティは 、Directory.Build.props ファイルで設定することもできます。 自動再起動は、迅速なプロセスの再起動が可能なプロジェクトの種類 (たとえば、一部のアスパイア プロジェクトや Web プロジェクト) に対して機能するため、中断を最小限に抑えてデバッグを続行できます。

これはプロセス ベースの再起動です。 たとえば、複数のプロジェクトをデバッグしている場合、変更されたプロジェクトと依存プロジェクトのみが再構築され、再起動されます。

Razor のホット リロードを構成する

Roslyn プロセス内で Razor コンパイラをコホストすることで、ホット リロード中に .razor ファイルを編集する方が高速で効率的です。 また、コホストにより、ホット リロードを使用するときの全体的な信頼性も向上します。

共同ホストを有効にするには、[>オプション] を選択し、cohostを検索します。 [ Razor に Roslyn Cohost サーバーを使用する (再起動が必要)] 設定を選択または選択解除します。 このオプションを有効にする場合は、Visual Studio を再起動します。 Cohosting は既定で有効になっています。

コードの変更を停止する

ホット リロードがコード変更の適用中である間は、操作を停止できます。

エディット コンティニュがコード変更の適用中である間は、操作を停止できます。

注意事項

マネージド コードでコードの変更を停止すると、予期しない結果が発生する可能性があります。 通常、マネージド コードへの変更の適用は簡単なプロセスであるため、マネージド コードのコード変更を停止する必要はほとんどありません。

コード変更の適用を停止するには:

  • [デバッグ] メニューから [コード変更の適用を停止] を選択します。

    このメニュー項目は、コードの変更が適用されている場合にのみ表示されます。

    このオプションを選択した場合、コードの変更はコミットされていません。