傳統桌面使用者端的遠端偵錯相比
UWP
,ASP
等專案來說,設定比較麻煩,因為它是非部署的應用程式,原理是複製編譯的檔案到遠端計算機,通過網路來連線和VS
的通訊,本文主要講述WPF
,WinForm
應用程式的遠端偵錯。
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 身份驗證或者無身份驗證,前者需要在連線時進行身份驗證:
確認就可以了:
找到我們本機要偵錯的專案,用一個簡單的Winform
專案為例:專案屬性 => 偵錯 => 使用遠端計算機 => 根據遠端機設定的身份驗證模式選擇是否進行身份驗證 => 重新生成專案
需要勾選啟用原生程式碼偵錯
在遠端計算機上建立一個資料夾,其路徑與 Visual Studio
計算機上的 Debug
資料夾相同:<源路徑>\Demo01\Demo01\bin\Debug
:
將遠端主機資料夾設定為共用 Everyone
:
將有 Visual Studio
計算機上的專案 Debug
資料夾下的檔案複製貼上到遠端主機 Debug
資料夾下,可手動複製專案,或者使用 XCopy
、Robocopy
、PowerShell
或其他選項:
在本地執行偵錯就可以了。
可能出現的問題:
如果出現無法命中斷點,提示未載入任何符號集啥的,就重新在本地編譯一遍,然後將編譯好的Debug
檔案下的內容複製到遠端主機上再來。
遠端偵錯可能出現的問題有很多,建議就是x64
、x86
都複製進去,出錯了就兩個換著來,還有身份驗證模式,怎麼能用怎麼來嘛,對吧。