設定 [編輯後繼續] (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 6+ 專案的 launchSetting.json 檔案,並將 hotReloadEnabled
設定為 false
,來控制專案層級的熱重載是否可供使用。
例:
{
"profiles": {
"Console": {
"commandName": "Project",
"hotReloadEnabled": false
}
}
}
針對 C++,您可以開啟 Tools>Options>偵錯>一般來設置額外的選項。 請確定已選取 [啟用熱重載],並設定其他選項:
繼續操作時套用變更(僅限原生程式)
如果選取,Visual Studio 會在繼續從中斷狀態進行偵錯時,自動編譯並套用程式代碼變更。 否則,您可以選擇使用 [偵錯]>[套用程式碼更動]來套用變更。
警告過時程式碼 (僅限原生應用)
如果選取,則會顯示過時程式碼的相關警告。
啟用或停用"編輯後繼續"功能
如果您是在偵錯會話中,請停止偵錯(偵錯>停止偵錯 或 Shift+F5)。
在 [工具]>[選項>] 或 [偵錯>選項] >[偵錯>一般] 中,在右窗格中選取 [編輯後繼續 ]。
注意
如果已啟用 IntelliTrace,而且您同時收集 IntelliTrace 事件和呼叫資訊,那麼「編輯並繼續」功能將會被停用。 如需詳細資訊,請參閱 IntelliTrace。
針對C++程序代碼,請確定已選取 [啟用原生編輯後繼續],並設定其他選項:
在繼續時套用變更 (僅限原生)
如果選取,Visual Studio 會在繼續從中斷狀態進行偵錯時,自動編譯並套用程式代碼變更。 否則,您可以選擇使用 [偵錯]>[套用程式代碼變更]來套用變更。
警告過時程序代碼 (僅限原生)
如果選擇,則顯示過時程式代碼的相關警告。
選取 [確定]。
停止程式代碼變更
當 Hot Reload 進行程式碼變更時,您可以中止這個過程。
當 [編輯後繼續] 正在套用程式代碼變更時,您可以停止作業。
謹慎
停止受管理的代碼中的變更可能會產生非預期的結果。 將變更套用至 Managed 程式碼通常是一個快速的過程,因此很少需要停止對 Managed 程式碼的變更。
若要停止套用程式代碼變更:
從 [偵錯] 功能表中,選擇 [停止套用程式代碼變更]。
只有在套用程式代碼變更時,才會顯示此功能表項。
如果您選擇此選項,則不會認可任何程式碼變更。