首先我要說,我可以遠程調試釋放構建遠程計算機上。我set up my release build非常像我的調試版本,但我大多不得不確保調試標誌沒有設置。我已經處理了一段時間,最終決定嘗試找出爲什麼我必須經歷這個。我還應該提到,我的遠程調試經驗僅限於此項目,並且C#程序使用C++/CLI(使用/ clr).DLL編譯來調解某些關鍵的C++庫。我不需要調試底層的C++庫,但我需要調試C++/CLI代碼。 (我提到的一個原因是我不能在使用/ clr標誌時靜態鏈接庫)。遠程調試與CRT的調試版本的應用程序時,在遠程機器上沒有安裝VS
我最近發現Dependency Walker,所以我用它來看看發生了什麼。調試標誌集,鏈接器鏈接在MSVCR100D.DLL和MSVCP100D.DLL中,當標誌未設置時,它使用沒有「D」後綴的文件。現在通常我可能會將這些.DLL的版本複製到遠程計算機,但是存在問題。 VS2010的我的開發筆記本電腦是64位機器,目標機器是32位。這意味着我擁有的這些DLL的唯一版本是64位。我已經在遠程機器上安裝了VS2010的遠程調試(我在2008年有這個問題),但它不包括這些.DLL的調試版本(我不知道爲什麼,但我假設這是通過設計)。所以我的問題是:
- 作爲VS2010的註冊擁有者,是否有可用於遠程計算機的這些.DLL的32位版本的有效來源?
- 有沒有更簡單的方法讓我獲得調試支持?那是我可以改變一些其他的設置,告訴VS不使用這兩個DLL的調試版本嗎?這裏的優點是將設置DEBUG符號,並使用它的任何條件代碼都可以工作。
1K表達謝意。我覺得有點像一個白癡,因爲沒有注意到運行時庫選項(因爲我使用非常彈出來嘗試MT選項)。奇怪的隧道視覺失明我猜。我選擇將非redist版本放在遠程機器上的調試文件夾中。在我將機器運送給客戶之前,該文件夾將被刪除,我將留在MS的良好聲譽。 – Tod
@Tod:當然;別客氣。這就是這個網站的目的,真的。這聽起來像是一個很好的解決方案;我已經在靜態鏈接無法工作的項目上做到這一點。 (我只注意到我錯過了你的問題,你解釋爲什麼你不能靜態鏈接的一部分。) –