C# 使用者端程式 Visual Studio 遠端偵錯方法

2023-06-06 15:07:09

傳統桌面使用者端的遠端偵錯相比UWPASP等專案來說,設定比較麻煩,因為它是非部署的應用程式,原理是複製編譯的檔案到遠端計算機,通過網路來連線和VS的通訊,本文主要講述WPF,WinForm應用程式的遠端偵錯。

安裝 Remote Debuger

  • 下載適合 Visual Studio 版本的最新遠端工具。 最新的遠端工具版本與早期的 Visual Studio 版本相容,但早期的遠端工具版本與後來的 Visual Studio 版本不相容。 (例如,如果使用的是 Visual Studio 2019,請下載 Visual Studio 2019 遠端工具的最新更新。在這種情況下,請不要下載 Visual Studio 2022 遠端工具。)
  • 下載與要安裝遠端工具的計算機具有相同體系結構的遠端工具。 例如,如果要在執行 x64 作業系統的遠端計算機上偵錯 x86 應用程式,請安裝 x64 遠端工具。

可以通過將msvsmon.exe複製到遠端計算機,也可以通過安裝遠端工具來執行遠端偵錯程式(安裝遠端工具完成以後就和複製貼上檔案開啟msvsmon.exe是一樣的,多一個設定頁面,這裡主要演示覆制貼上):

右鍵 Visual Studio => 開啟檔案位置 => 找到當前目錄下的Remote Debugger資料夾 => 複製貼上x64或者x86到你的遠端計算機中,執行資料夾中的 msvsmon.exe

設定身份驗證模式:工具 => 選項 => Windows 身份驗證或者無身份驗證,前者需要在連線時進行身份驗證:

確認就可以了:

VS偵錯設定

找到我們本機要偵錯的專案,用一個簡單的Winform專案為例:專案屬性 => 偵錯 => 使用遠端計算機 => 根據遠端機設定的身份驗證模式選擇是否進行身份驗證 => 重新生成專案

需要勾選啟用原生程式碼偵錯

設定遠端偵錯目錄

在遠端計算機上建立一個資料夾,其路徑與 Visual Studio 計算機上的 Debug 資料夾相同:<源路徑>\Demo01\Demo01\bin\Debug

將遠端主機資料夾設定為共用 Everyone

將有 Visual Studio 計算機上的專案 Debug 資料夾下的檔案複製貼上到遠端主機 Debug 資料夾下,可手動複製專案,或者使用 XCopyRobocopyPowerShell 或其他選項:

執行程式

在本地執行偵錯就可以了。

可能出現的問題:

  • 如果出現無法命中斷點,提示未載入任何符號集啥的,就重新在本地編譯一遍,然後將編譯好的Debug檔案下的內容複製到遠端主機上再來。

  • 遠端偵錯錯誤和疑難排解

  • 排查遠端偵錯問題

  • 遠端偵錯可能出現的問題有很多,建議就是x64x86都複製進去,出錯了就兩個換著來,還有身份驗證模式,怎麼能用怎麼來嘛,對吧。