2011-11-09 52 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(),所以你的代码中有调试器,然后很容易添加断点等,但可能你的解决方案更简单。 –

相关问题