對 Visual Studio 中的 C# 或 Visual Basic 專案進行遠端偵錯

若要對已在不同電腦上部署的 Visual Studio 應用程式進行偵錯,請在您部署應用程式的電腦上安裝並執行遠端工具、設定專案以從 Visual Studio 連線到遠端電腦,然後執行您的應用程式。

Screenshot of remote debugger components.

如需有關通用 Windows 應用程式 (UWP) 的遠端偵錯資訊,請參閱對已安裝的應用程式套件進行偵錯

需求

Windows 7 和更新版本,以及從 Windows Server 2008 Service Pack 2 開始的 Windows Server 版本都支援遠端偵錯工具。 如需完整的需求清單,請參閱需求

注意

不支援在透過 Proxy 連線的兩部電腦之間進行偵錯。 不建議透過高延遲或低頻寬的連線進行偵錯 (例如撥接網際網路),或透過網際網路跨國家/地區進行偵錯,因為可能會發生失敗或極為緩慢。

下載及安裝遠端工具

在您要進行偵錯的遠端裝置或伺服器上 (而非 Visual Studio 機器上),從下表的連結中下載並安裝正確的遠端工具版本。

  • 請下載適用您的 Visual Studio 版本的遠端工具最新更新。 舊版遠端工具與較新的 Visual Studio 版本無法相容。 (例如,如果您使用 Visual Studio 2019,請下載 Visual Studio 2019 的遠端工具最新更新。在此情況下,請勿下載 Visual Studio 2022 的遠端工具。)
  • 下載遠端工具時,其結構須與您安裝工具所在的電腦相同。 例如,如果您想要在執行 x64 作業系統的遠端電腦上,對 x86 應用程式進行偵錯,請安裝 x64 遠端工具。 若要在 ARM64 作業系統上對 x86、ARM 或 x64 應用程式進行偵錯,請安裝 ARM64 遠端工具。
版本 連結 備註
Visual Studio 2022 遠端工具 與所有 Visual Studio 2022 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 或 ARM64)。 在較舊版本的 Windows Server 上,請參閱解除封鎖檔案下載以取得關於下載遠端工具的説明。
Visual Studio 2019 遠端工具 與所有 Visual Studio 2019 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 或 ARM64)。 在較舊版本的 Windows Server 上,請參閱解除封鎖檔案下載以取得關於下載遠端工具的説明。
Visual Studio 2017 遠端工具 與所有 Visual Studio 2017 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2015 遠端工具 適用於 Visual Studio 2015 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2013 遠端工具 Visual Studio 2013 文件中的下載頁面
Visual Studio 2012 遠端工具 Visual Studio 2012 文件中的下載頁面
版本 連結 備註
Visual Studio 2019 遠端工具 與所有 Visual Studio 2019 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。 如需最新版本的遠端工具,請開啟 Visual Studio 2022 文件
Visual Studio 2017 遠端工具 與所有 Visual Studio 2017 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2015 遠端工具 適用於 Visual Studio 2015 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2013 遠端工具 Visual Studio 2013 文件中的下載頁面
Visual Studio 2012 遠端工具 Visual Studio 2012 文件中的下載頁面

您可以將 msvsmon.exe 複製到遠端電腦 (而不是安裝遠端工具),來執行遠端偵錯工具。 不過,只有在安裝遠端工具時,才會出現遠端偵錯工具設定精靈 (rdbgwiz.exe)。 如果您想要以服務形式執行遠端偵錯工具,您可能需要使用精靈進行設定。 如需詳細資訊,請參閱 (選擇性) 將遠端偵錯工具設定為服務

注意

  • 若要對 ARM 裝置上的 Windows 10 或更新版的應用程式進行偵錯,請使用 ARM64,其可透過最新版本的遠端工具取得。
  • 若要對 Windows RT 裝置上的 Windows 10 應用程式進行偵錯,請使用 ARM,其只能在 Visual Studio 2015 遠端工具下載中取得。
  • 若要對 ARM64 作業系統上的 x64 應用程式進行偵錯,請執行隨著 ARM64 遠端工具一起安裝的 x64 msvsmon.exe。

提示

在某些情況下,從檔案共用中執行遠端偵錯工具最有效率。 如需詳細資訊,請參閱從檔案共用中執行遠端偵錯工具

設定遠端偵錯工具

  1. 在遠端電腦上,從 [開始] 功能表尋找並啟動遠端偵錯工具。

    如果您沒有遠端電腦上的系統管理權限,請以滑鼠右鍵按一下 [遠端偵錯工具] 應用程式,然後選取 [以系統管理員身分執行]。 否則,只要正常啟動即可。

    如果您打算連結至以系統管理員身分執行的程序,或是在不同使用者帳戶下執行的程序,請以滑鼠右鍵按一下 [遠端偵錯工具] 應用程式,然後選取 [以系統管理員身分執行]。 如需詳細資訊,請參閱以系統管理員身分執行遠端偵錯工具

  2. 第一次啟動遠端偵錯工具時 (或設定遠端工具之前),遠端偵錯設定精靈會隨即出現。

    在大部分情況下,請一直選擇 [下一步],直到進入精靈的 [設定 Windows 防火牆] 頁面為止。

    Screenshot of remote debugger configuration.

    Screenshot of remote debugger configuration.

    如果沒有安裝 Windows Web 服務 API (只有在 Windows Server 2008 R2 上才會發生這種情況),請選取 [安裝] 按鈕。

  3. 請選取至少一個您想要在其中使用遠端工具的網路類型。 如果此電腦經由網域連線,您就必須選擇第一個項目。 如果電腦經由工作群組或家用群組連線,請視情況選擇第二個或第三個項目。

    接下來,選取 [完成] 以啟動遠端偵錯工具。

    接下來,選取 [設定遠端偵錯] 以啟動遠端偵錯工具。

  4. 設定完成時,[遠端偵錯工具] 視窗會隨即出現。

    Screenshot of remote debugger window

    Screenshot of remote debugger window

    遠端偵錯工具現在會等候連線。 使用顯示的伺服器名稱和連接埠號碼,在 Visual Studio 中設定遠端連線設定。

若要停止遠端偵錯工具,請選取 [檔案]>[結束]。 您可以從 [開始] 功能表或從命令列將其重新啟動:

<Remote debugger installation directory>\msvsmon.exe

注意

如果您需要為其他使用者新增權限、變更驗證模式或遠端偵錯工具的連接埠號碼,請參閱設定遠端偵錯工具

對專案進行遠端偵錯

偵錯工具無法將 Visual C# 或 Visual Basic 傳統型應用程式部署到遠端電腦,但您還是可以對其遠端偵錯,如下所示。 下列程序假設您想要在名為 MJO-DL 的電腦上進行偵錯,如下圖所示。

  1. 建立名為 MyWpf 的 WPF 專案。

    如果您嘗試遠端偵錯 MAUI 應用程式,而非 WPF,請參閱 在 Windows 上遠端偵錯 .NET MAUI 應用程式

  2. 在程式碼某處設定容易達到的中斷點。

    例如,您可能會在按鈕處理常式中設定中斷點。 若要這樣做,請開啟 MainWindow.xaml,然後從 [工具箱] 新增按鈕控制項,然後按兩下按鈕以開啟其控制碼。

  3. 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選擇 [屬性]

  4. 在 [屬性] 頁面上,選擇 [偵錯] 索引標籤。

    針對以 .NET Core 或 .NET 5+ 為目標的 C# 專案,從 Visual Studio 2022 開始,請從 [偵錯] 索引標籤選擇 [針對啟動設定檔 UI 進行偵錯],來設定遠端偵錯的設定。

    Screenshot of the Debug launch profile UI in the Visual Studio Project Properties for C# and .NET.

    否則,您可以直接在 [偵錯] 索引標籤中變更遠端偵錯設定。

    Screenshot of the Debug tab in the Visual Studio Project Properties. The Use remote machine property is set to 'MJO-DL:4022'.

  5. 確認 [工作目錄] 文字方塊為空白。

  6. 選擇 [使用遠端電腦],然後在文字方塊中輸入 yourmachinename:port。 (連接埠號碼會顯示在遠端偵錯工具視窗中。每個 Visual Studio 版本中的連接埠號碼都會往上加 2)。

    在此範例中,請使用:

    Visual Studio 2022 上的 MJO-DL:4026

    Visual Studio 2019 上的 MJO-DL:4024

  7. 請確定未選取 [啟用原生程式碼偵錯]

  8. 組建專案。

  9. 在遠端電腦上建立資料夾,其路徑與 Visual Studio 電腦上的 [偵錯] 資料夾相同:<來源路徑>\MyWPF\MyWPF\bin\Debug

  10. 從 Visual Studio 電腦複製您剛才建置的可執行檔到遠端電腦上新建立的資料夾。

    警告

    請勿對程式碼進行變更或重建 (否則您必須重複此步驟)。 您複製到遠端電腦的可執行檔必須完全符合您的本機來源和符號。

    您可以手動複製專案、使用 XCopy、Robocopy、PowerShell 或其他選項。

  11. 請確定遠端偵錯工具正在目標機器上執行 (如果不是,請在 [開始] 功能表中搜尋遠端偵錯工具)。 遠端偵錯工具視窗看起來會像這樣。

    Screenshot of remote debugger window for VS 2022.

    Screenshot of remote debugger window for VS 2019.

  12. 在 Visual Studio 中,開始偵錯 ([偵錯] > [開始偵錯],或按 F5)。

  13. 如果出現提示,請輸入網路認證以連線到遠端電腦。

    所需的認證會根據您的網路安全性設定而有所不同。 例如,在網域電腦上,您可以輸入您的網域名稱和密碼。 在非網域電腦上,您可以輸入電腦名稱和有效的使用者帳戶名稱 (例如 MJO-DL\name@something.com),以及正確的密碼。

    您應該會看到 WPF 應用程式主視窗已在遠端電腦上開啟。

  14. 如有必要,請採取動作來叫用中斷點。 您應該會看到中斷點為作用中。 如果不是的話,則應用程式的符號尚未載入。 請重試,如果重試無效,請參閱了解符號檔案和 Visual Studio 的符號設定 (英文),來取得有關載入符號及如何進行疑難排解的資訊。

  15. 在 Visual Studio 的電腦上,您應該會看到執行過程在中斷點停止。

    如果您有應用程式必須使用的任何非程式碼檔案,您需要將其包含在 Visual Studio 專案。 建立其他檔案的專案資料夾 (在 [方案總管] 中,按一下 [新增] > [新增資料夾])。 然後將檔案新增至資料夾 (在 [方案總管] 中,按一下 [新增] > [現有的項目],然後選取檔案)。 在每個檔案的 [屬性] 頁面上,將 [複製到輸出目錄] 設定為 [一律複製]

在 Windows 上遠端偵錯 .NET MAUI 應用程式

.NET MAUI 應用程式是在部署時需要註冊的已封裝應用程式,而非僅複製到遠端電腦。 若要遠端偵錯,您可以部署應用程式的未封裝版本。

使用下列其中一種方式進行遠端偵錯:

  • 依照使用 CLI 發佈適用於 Windows 的未封裝 .NET MAUI 應用程式中所述的步驟,將應用程式以未封裝的形式發佈至遠端裝置,然後依照本文中的步驟進行遠端偵錯。 (略過複製應用程式的步驟。)

  • 依照本文中的步驟執行,包括為專案建立偵錯啟動設定檔的步驟。 開始偵錯之前,請先手動編輯 launchSettings.json 檔案,將 commandNameProject 值取代為 MsixPackage,如下所示。

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    當您開始偵錯時,此方法會先部署應用程式版的未封裝版本,然後加以啟動。

    注意

    將值變更為 MsixPackage 後,您就無法在 [偵錯啟動設定檔] 對話方塊中編輯 launchSettings.json

設定遠端符號偵錯

您應該能夠使用您在 Visual Studio 電腦產生的符號偵錯程式碼。 當您使用本機符號時,遠端偵錯工具的效能會更好。 如果您必須使用遠端符號,就必須告訴 [遠端偵錯監視] 在遠端電腦上尋找符號。

您可以使用下列 msvsmon 命令列參數以使用 Managed 程式碼的遠端符號:Msvsmon /FallbackLoadRemoteManagedPdbs

如需詳細資訊,請參閱遠端偵錯的說明 (在 [遠端偵錯工具] 視窗中按 F1,或按一下 [說明] > [使用量])。