對 Visual Studio 中的 C# 或 Visual Basic 專案進行遠端偵錯
若要對已在不同電腦上部署的 Visual Studio 應用程式進行偵錯,請在您部署應用程式的電腦上安裝並執行遠端工具、設定專案以從 Visual Studio 連線到遠端電腦,然後執行您的應用程式。
如需有關通用 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 (AMD64) 或 ARM64)。 在較舊版本的 Windows Server 上,請參閱解除封鎖檔案下載以取得關於下載遠端工具的説明。 |
Visual Studio 2019 | 遠端工具 | 適用於 Visual Studio 2019 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 ARM64)。 在較舊版本的 Windows Server 上,請參閱解除封鎖檔案下載以取得關於下載遠端工具的説明。 |
Visual Studio 2017 | 遠端工具 | 適用於 Visual Studio 2017 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 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 (AMD64) 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。 如需最新版本的遠端工具,請開啟 Visual Studio 2022 文件。 |
Visual Studio 2017 | 遠端工具 | 與所有 Visual Studio 2017 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 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。
提示
在某些情況下,從檔案共用中執行遠端偵錯工具最有效率。 如需詳細資訊,請參閱從檔案共用中執行遠端偵錯工具。
設定遠端偵錯工具
在遠端電腦上,從 [開始] 功能表尋找並啟動遠端偵錯工具。
如果您沒有遠端電腦上的系統管理權限,請以滑鼠右鍵按一下 [遠端偵錯工具] 應用程式,然後選取 [以系統管理員身分執行]。 否則,只要正常啟動即可。
如果您打算連結至以系統管理員身分執行的程序,或是在不同使用者帳戶下執行的程序,請以滑鼠右鍵按一下 [遠端偵錯工具] 應用程式,然後選取 [以系統管理員身分執行]。 如需詳細資訊,請參閱以系統管理員身分執行遠端偵錯工具。
第一次啟動遠端偵錯工具時 (或設定遠端工具之前),遠端偵錯設定精靈會隨即出現。
在大部分情況下,請一直選擇 [下一步],直到進入精靈的 [設定 Windows 防火牆] 頁面為止。
如果沒有安裝 Windows Web 服務 API (只有在 Windows Server 2008 R2 上才會發生這種情況),請選取 [安裝] 按鈕。
請選取至少一個您想要在其中使用遠端工具的網路類型。 如果此電腦經由網域連線,您就必須選擇第一個項目。 如果電腦經由工作群組或家用群組連線,請視情況選擇第二個或第三個項目。
接下來,選取 [完成] 以啟動遠端偵錯工具。
接下來,選取 [設定遠端偵錯] 以啟動遠端偵錯工具。
設定完成時,[遠端偵錯工具] 視窗會隨即出現。
遠端偵錯工具現在會等候連線。 使用顯示的伺服器名稱和連接埠號碼,在 Visual Studio 中設定遠端連線設定。
若要停止遠端偵錯工具,請選取 [檔案]>[結束]。 您可以從 [開始] 功能表或從命令列將其重新啟動:
<Remote debugger installation directory>\msvsmon.exe
注意
如果您需要為其他使用者新增權限、變更驗證模式或遠端偵錯工具的連接埠號碼,請參閱設定遠端偵錯工具。
對專案進行遠端偵錯
偵錯工具無法將 Visual C# 或 Visual Basic 傳統型應用程式部署到遠端電腦,但您還是可以對其遠端偵錯,如下所示。 下列程序假設您想要在名為 MJO-DL 的電腦上進行偵錯,如下圖所示。
建立名為 MyWpf 的 WPF 專案。
如果您嘗試遠端偵錯 MAUI 應用程式,而非 WPF,請參閱 在 Windows 上遠端偵錯 .NET MAUI 應用程式。
在程式碼某處設定容易達到的中斷點。
例如,您可能會在按鈕處理常式中設定中斷點。 若要這樣做,請開啟 MainWindow.xaml,然後從 [工具箱] 新增按鈕控制項,然後按兩下按鈕以開啟其控制碼。
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選擇 [屬性]。
在 [屬性] 頁面上,選擇 [偵錯] 索引標籤。
針對以 .NET Core 或 .NET 5+ 為目標的 C# 專案,從 Visual Studio 2022 開始,請從 [偵錯] 索引標籤選擇 [針對啟動設定檔 UI 進行偵錯],來設定遠端偵錯的設定。
否則,您可以直接在 [偵錯] 索引標籤中變更遠端偵錯設定。
確認 [工作目錄] 文字方塊為空白。
選擇 [使用遠端電腦],然後在文字方塊中輸入 yourmachinename:port。 (連接埠號碼會顯示在遠端偵錯工具視窗中。每個 Visual Studio 版本中的連接埠號碼都會往上加 2)。
在此範例中,請使用:
Visual Studio 2022 上的 MJO-DL:4026
Visual Studio 2019 上的 MJO-DL:4024
請確定未選取 [啟用原生程式碼偵錯]。
組建專案。
在遠端電腦上建立資料夾,其路徑與 Visual Studio 電腦上的 [偵錯] 資料夾相同:<來源路徑>\MyWPF\MyWPF\bin\Debug。
從 Visual Studio 電腦複製您剛才建置的可執行檔到遠端電腦上新建立的資料夾。
警告
請勿對程式碼進行變更或重建 (否則您必須重複此步驟)。 您複製到遠端電腦的可執行檔必須完全符合您的本機來源和符號。
您可以手動複製專案、使用 XCopy、Robocopy、PowerShell 或其他選項。
請確定遠端偵錯工具正在目標機器上執行 (如果不是,請在 [開始] 功能表中搜尋遠端偵錯工具)。 遠端偵錯工具視窗看起來會像這樣。
在 Visual Studio 中,開始偵錯 ([偵錯] > [開始偵錯],或按 F5)。
如果出現提示,請輸入網路認證以連線到遠端電腦。
所需的認證會根據您的網路安全性設定而有所不同。 例如,在網域電腦上,您可以輸入您的網域名稱和密碼。 在非網域電腦上,您可以輸入電腦名稱和有效的使用者帳戶名稱 (例如 MJO-DL\name@something.com),以及正確的密碼。
您應該會看到 WPF 應用程式主視窗已在遠端電腦上開啟。
如有必要,請採取動作來叫用中斷點。 您應該會看到中斷點為作用中。 如果不是的話,則應用程式的符號尚未載入。 請重試,如果重試無效,請參閱了解符號檔案和 Visual Studio 的符號設定 (英文),來取得有關載入符號及如何進行疑難排解的資訊。
在 Visual Studio 的電腦上,您應該會看到執行過程在中斷點停止。
如果您有應用程式必須使用的任何非程式碼檔案,您需要將其包含在 Visual Studio 專案。 建立其他檔案的專案資料夾 (在 [方案總管] 中,按一下 [新增] > [新增資料夾])。 然後將檔案新增至資料夾 (在 [方案總管] 中,按一下 [新增] > [現有的項目],然後選取檔案)。 在每個檔案的 [屬性] 頁面上,將 [複製到輸出目錄] 設定為 [一律複製]。
在 Windows 上遠端偵錯 .NET MAUI 應用程式
.NET MAUI 應用程式是在部署時需要註冊的已封裝應用程式,而非僅複製到遠端電腦。 若要遠端偵錯,您可以部署應用程式的未封裝版本。
使用下列其中一種方式進行遠端偵錯:
依照使用 CLI 發佈適用於 Windows 的未封裝 .NET MAUI 應用程式中所述的步驟,將應用程式以未封裝的形式發佈至遠端裝置,然後依照本文中的步驟進行遠端偵錯。 (略過複製應用程式的步驟。)
依照本文中的步驟執行,包括為專案建立偵錯啟動設定檔的步驟。 開始偵錯之前,請先手動編輯 launchSettings.json 檔案,將 commandName
Project
值取代為MsixPackage
,如下所示。"Remote Profile": { "commandName": "MsixPackage", "remoteDebugEnabled": true, "remoteDebugMachine": "170.200.20.22", "authenticationMode": "None" }
當您開始偵錯時,此方法會先部署應用程式版的未封裝版本,然後加以啟動。
注意
將值變更為
MsixPackage
後,您就無法在 [偵錯啟動設定檔] 對話方塊中編輯 launchSettings.json。
設定遠端符號偵錯
您應該能夠使用您在 Visual Studio 電腦產生的符號偵錯程式碼。 當您使用本機符號時,遠端偵錯工具的效能會更好。 如果您必須使用遠端符號,就必須告訴 [遠端偵錯監視] 在遠端電腦上尋找符號。
您可以使用下列 msvsmon 命令列參數以使用 Managed 程式碼的遠端符號:Msvsmon /FallbackLoadRemoteManagedPdbs
如需詳細資訊,請參閱遠端偵錯的說明 (在 [遠端偵錯工具] 視窗中按 F1,或按一下 [說明] > [使用量])。