共用方式為


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

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

編輯後繼續是節省時間的功能,可讓您在程式處於中斷模式時變更原始程式碼。 當您選擇執行命令以繼續執行程式時,例如 繼續步驟,[編輯後繼續] 會自動套用程式代碼變更,但有一些限制。 這可讓您在偵錯會話期間變更程序代碼,而不必停止、重新編譯整個程序,然後重新啟動偵錯會話。

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

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

啟用和設定熱重載

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

設定熱重載的螢幕快照。

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

注意

如果已啟用 IntelliTrace,而且您同時收集 IntelliTrace 事件和呼叫資訊,則會停用 "Edit and Continue" 功能。 如需詳細資訊,請參閱 IntelliTrace

熱重載的設定包括:

  • 啟用熱重載。 從附加的調試程序開始時啟用熱重載(F5)。

  • 在不偵錯的情況下啟動時啟用熱重載。 在未附加調試程序的情況下啟動時啟用熱重載 (Ctrl+F5)。

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

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

.NET 熱重載設定的螢幕快照。

針對 .NET 熱重載,您也可以修改 .NET 6+ 專案的 launchSetting.json 檔案,並將 hotReloadEnabled 設定為 false,來控制專案層級的熱重載是否可供使用。

例:

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

針對 C++,您可以開啟 Tools>Options>偵錯>一般來設置額外的選項。 請確定已選取 [啟用熱重載],並設定其他選項:

  • 繼續操作時套用變更(僅限原生程式)

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

  • 警告過時程式碼 (僅限原生應用)

    如果選取,則會顯示過時程式碼的相關警告。

啟用或停用"編輯後繼續"功能

  1. 如果您是在偵錯會話中,請停止偵錯(偵錯>停止偵錯Shift+F5)。

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

    注意

    如果已啟用 IntelliTrace,而且您同時收集 IntelliTrace 事件和呼叫資訊,那麼「編輯並繼續」功能將會被停用。 如需詳細資訊,請參閱 IntelliTrace

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

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

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

    • 警告過時程序代碼 (僅限原生)

      如果選擇,則顯示過時程式代碼的相關警告。

  4. 選取 [確定]

停止程式代碼變更

當 Hot Reload 進行程式碼變更時,您可以中止這個過程。

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

謹慎

停止受管理的代碼中的變更可能會產生非預期的結果。 將變更套用至 Managed 程式碼通常是一個快速的過程,因此很少需要停止對 Managed 程式碼的變更。

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

  • 從 [偵錯] 功能表中,選擇 [停止套用程式代碼變更]

    只有在套用程式代碼變更時,才會顯示此功能表項。

    如果您選擇此選項,則不會認可任何程式碼變更。