2011-11-09 56 views
9

我有一個的powershell腳本和我通過[Reflection.Assembly] ::負載加載DLL加載到PowerShell的進程時調試C#DLL?它甚至有可能嗎?

我要放置brakepoints成DLL的源代碼,添加手錶等

附着到的powershell過程沒有工作(實際上我嘗試了powershell ise)。沒有其他進程要附加到。有任何想法嗎?一旦出現異常(這是我的例外,所以這應該發生)出現在VS,但我不能再現它。

+2

我肯定通過附加到powershell.exe進程調試C#代碼。我無法回想起ISE這樣做,但我不知道爲什麼這不起作用。 – OldFart

回答

8

作爲替代方案,你可以在你的庫中創建一個輔助類:

namespace Something { 
    public static class DebugHelper { 
     public static void AttachDebugger() { 
      System.Diagnostics.Debugger.Launch(); 
     } 
    } 
} 

然後,您可以調用該方法從PowerShell中,你將得到調試器附着。

+2

我注意到有時它不起作用。 VS啓動但是異常不會被捕獲。 請注意,我直接從電源外殼使用這條線: [System.Diagnostics.Debugger] :: Launch() – naeron84

+2

我的想法是使用[Something.DebugHelper] :: AttachDebugger(),所以你的代碼中有調試器,然後很容易添加斷點等,但可能你的解決方案更簡單。 –

相關問題