設定 [編輯後繼續] (C#、 VB、 C++)

可以在設計時在 Visual Studio 選項對話框中停用或啟用 [熱重新載入] (以前稱為 [編輯後繼續])。 熱重新載入僅適用於偵錯組建。 如需詳細資訊,請參閱熱重新載入

[編輯後繼續] 功能可以在您的程式處於中斷模式時,讓您對原始程式碼進行變更以節省時間。 當您選擇 [繼續] 或 [步驟] 等執行命令繼續執行程式時,[編輯後繼續] 會自動套用程式碼變更,但有一些限制。 這可以讓您在偵錯工作階段期間變更程式碼而不需要停止、重新編譯整個程式並重新啟動偵錯工作階段。

可以在設計時在 Visual Studio選項對話框中停用或啟用 [編輯後繼續]。 [編輯後繼續] 只能用於偵錯組建中。 如需詳細資訊,請參閱編輯後繼續

針對原生 C++,[編輯後繼續] 需要使用 /INCREMENTAL 選項。 如需 C++ 中功能需求的詳細資訊,請參閱此部落格文章編輯後繼續 (C++)

啟用和設定 [熱重新載入]

您可以從熱重載下拉式按鈕中選取設定,以設定 [熱重載]。

Screenshot of configuring Hot Reload.

或者,開啟 [工具] > [選項] > [偵錯] > [.NET/C++ 熱重新載入]

注意

如果已啟用 IntelliTrace,而且您同時收集 IntelliTrace 事件和呼叫資訊,則會停用 [編輯後繼續]。 如需詳細資訊,請參閱 IIntelliTrace

熱重新載入的設定包括:

  • 偵錯時啟用熱重新載入和編輯後繼續。 在附加偵錯工具的情況下啟動時啟用熱重新載入 (F5)。

  • 在未進行偵錯的情況下啟動時啟用熱重新載入. 在未附加偵錯工具的情況下啟動時啟用熱重新載入 (Ctrl+F5)。

  • 在檔案儲存時套用熱重新載入。 當您儲存檔案時,會套用程式碼變更。

  • 記錄詳細程度。 篩選 [熱重新載入輸出] 視窗中顯示的資訊量。

Screenshot of settings for .NET Hot Reload.

如果是 .NET 熱重新載入,還可以修改 .NET 6+ 專案的 launchSetting.json 檔案並將hotReloadEnabled設定至false來控制 [熱重新載入] 是否適用於專案層級。

範例:

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

如果是 C++,可以開啟工具>選項>偵錯>一般。 確保選取了啟用熱重新載入,並設定其他選項:

  • 繼續時套用變更 (僅限原生)

    如果選取,則 Visual Studio 會在您從中斷狀態繼續進行偵錯時自動編譯並套用程式碼變更。 否則,您可以選擇使用 [偵錯] > [套用程式碼變更] 來套用變更。

  • 警告出現過時的程式碼 (僅限原生)

    如果選取,則提供過時程式碼的警告。

啟用或停用編輯後繼續

  1. 如果您是在偵錯工作階段中,請停止偵錯 ([偵錯]>[停止偵錯]Shift+F5)。

  2. 在 [工具] > [選項] > (或 [偵錯] > [選項]) > [偵錯] > [一般] 中,選取 右窗格中的 [編輯後繼續]

    注意

    如果已啟用 IntelliTrace,而且您同時收集 IntelliTrace 事件和呼叫資訊,則會停用 [編輯後繼續]。 如需詳細資訊,請參閱 IIntelliTrace

  3. 針對 C++ 程式碼,請確定已選取 [啟用原生編輯後繼續],然後設定其他選項:

    • 繼續時套用變更 (僅限原生)

      如果選取,則 Visual Studio 會在您從中斷狀態繼續進行偵錯時自動編譯並套用程式碼變更。 否則,您可以選擇使用 [偵錯] > [套用程式碼變更] 來套用變更。

    • 警告出現過時的程式碼 (僅限原生)

      如果選取,則提供過時程式碼的警告。

  4. 選取確定

停止程式碼變更

當 [熱重新載入] 正在套用程式碼變更時,您可以停止該作業。

當 [編輯後繼續] 正在套用程式碼變更時,您可以停止該作業。

警告

在 Managed 程式碼中停止程式碼變更,可能會產生非預期的結果。 一般來說,將變更套用至 Managed 程式碼的過程很快,因此不太需要在 Managed 程式碼中停止程式碼變更。

若要停止套用程式碼變更:

  • 選擇偵錯功能表中的停止套用程式碼變更

    只有套用程式碼變更時,才能看見這個功能表項目。

    如果您選擇此選項,就無法認可任何的程式碼變更。