2017-06-21 47 views
0

我有兩個C#項目,一個試圖將另一個作爲進程運行。主項目啓動其他像這樣的過程:如何在使用VS2013在c#中運行可執行文件的進程中調試文件?

ProcessStartInfo info = new ProcessStartInfo(filepath, args); 
info.Verb = "runas"; 
info.UseShellExecute = true; 
if (file.Exists(filepath)) 
{ 
    _fileID = Process.Start(info).Id; 
} 
else 
{ 
    throw new Exception("Could not find file.exe at " + filepath); 
} 

一個過程建立到一個控制檯應用程序正在啓動,只包含一個cs文件只具有Main()項目。

該進程應該立即運行這個Main方法,但是我在main方法的第一行設置了一個斷點,它永遠不會被命中。可執行文件已附加到從主項目創建的進程中,並且文件路徑是正確的。

我的問題是,如果我正在調試此過程,並且如果有更好的方法來調試進程內的項目文件?調試

+0

你也可以直接調試這個其他進程。設置它的調試命令行參數與第一個項目的代碼所傳遞的參數相同(即,* args *變量的內容)......應該不需要執行/啓動項目# 1如果你想/需要調試項目#2。順便說一句,如果你的第二個程序總是需要用提升的特權運行,那麼你可以通過相應地設置應用程序清單來更好地執行此操作(參見這裏)(https://stackoverflow.com/questions/2818179/how-do -i-force-my-net-application-to-run-as-administrator)) – elgonzo

+0

「可執行文件已附加到文件」?那沒有意義。您可以將調試器附加到可執行文件。 –

+0

Visual Studio恕我直言不能調試子進程。其他調試器如WinDbg可以參見'.childdbg' –

回答

0

一種方法是: 在Visual Studio 打開控制檯應用程序項目在項目屬性,調試,設置「啓動外部程序」,以你的主項目的EXE現在

,如果調試這個項目,你的折點應該是

0

你需要附加到其他進程。你可以從VS做到這一點。

轉到Debug -> Attach to process並在列表中選擇您的。

enter image description here

相關問題