C# 客戶端程式 Visual Studio 遠程調試方法

来源:https://www.cnblogs.com/BoiledYakult/archive/2023/06/06/17459749.html
-Advertisement-
Play Games

> > 傳統桌面客戶端的遠程調試相比`UWP`,`ASP`等項目來說,配置比較麻煩,因為它是非部署的應用程式,原理是複製編譯的文件到遠程電腦,通過網路來連接和`VS`的通信,本文主要講述`WPF`,`WinForm`應用程式的遠程調試。 ![](https://learn.microsoft.co ...


傳統桌面客戶端的遠程調試相比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

image-20230606092627819

image-20230606092700232

image-20230606092844902

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

image-20230606093310543

確認就可以了:

image-20230606093335100

VS調試配置

找到我們本機要調試的項目,用一個簡單的Winform項目為例:項目屬性 => 調試 => 使用遠程電腦 => 根據遠程機配置的身份驗證模式選擇是否進行身份驗證 => 重新生成項目

image-20230606093649492

不要勾選啟用本地代碼調試

配置遠程調試目錄

在遠程電腦上創建一個文件夾,其路徑與 Visual Studio 電腦上的 Debug 文件夾相同:<源路徑>\Demo01\Demo01\bin\Debug

image-20230606093929588

將遠程主機文件夾設置為共用 Everyone

image-20230606094501960

將有 Visual Studio 電腦上的項目 Debug 文件夾下的文件複製粘貼到遠程主機 Debug 文件夾下,可手動複製項目,或者使用 XCopyRobocopyPowerShell 或其他選項:

image-20230606094601543

運行程式

在本地運行調試就可以了。

image-20230606095726739

可能出現的問題:

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

  • 遠程調試錯誤和疑難解答

  • 排查遠程調試問題

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 當《阿裡巴巴Java開發手冊》發佈後,我也是仔細進行了閱讀,想從中找出一些“標準”,讓自己的代碼質量提高。手冊中對 Object 的 equals 方法的使用進行了強制,而且推薦使用 JDK7 中工具類 Objects 的 equals 方法,至此之後我就很少使用 Object.equals() 方... ...
  • # if語句-語法格式 簡單理解if語句之後,我們的if語句語法格式有多種,選擇使用哪種取決於要測試的條件數 # 1.if結構 最簡單的if語句只有一個條件測試和一個代碼塊 其語法格式: ![image](https://img2023.cnblogs.com/blog/3179433/202306 ...
  • #### 使用thymeleaf做html模板,由xhtmlrenderer/flying-saucer-pdf-openpdf將html轉為PDF > LGPL 和 MPL 許可 #### pom.xml引入依賴 ````java org.springframework.boot spring-b ...
  • > 文中所涉及到的代碼運行結果均是在64位機器上執行得到的. ## 基礎知識回顧 在Go中,我們可以使用`unsafe.Sizeof(x)`來查看變數所占的記憶體大小。以下是Go內置的數據類型占用的記憶體大小: | 類型 | 記憶體大小(位元組數) | | : | : | | bool | 1 | | in ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • ## 教程簡介 Ajax即Asynchronous Javascript And XML(非同步JavaScript和XML)在 2005年被Jesse James Garrett提出的新術語,用來描述一種使用現有技術集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript ...
  • ## 前言 本人之前開發了一個叫[電子腦殼](https://github.com/maker-community/ElectronBot.DotNet)的上位機應用,給稚暉君[ElectronBot](https://github.com/peng-zhihui/ElectronBot)開源機器人 ...
  • # SignalR+Hangfire 實現後臺任務隊列和實時通訊 1.簡介: SignalR是一個.NET的開源框架,SignalR可使用Web Socket, Server Sent Events 和 Long Polling作為底層傳輸方式實現服務端和客戶端的實時數據交互。 Hangfire是一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...