加载到PowerShell的进程时调试C#dll?它甚至可能吗?

nae*_*n84 10 .net c# debugging powershell visual-studio

我有一个powershell脚本,我通过[Reflection.Assembly] :: Load加载一个DLL

我想将刹车点放入该dll的源代码中,添加手表等.

附加到powershell过程不起作用(实际上我尝试过powershell ise).没有其他进程可以附加到.有任何想法吗?一旦异常(这是我的例外,所以这应该发生)出现在VS中,但我无法重现它.

Pao*_*sco 9

作为替代方案,您可以在库中创建一个帮助程序类:

namespace Something {
    public static class DebugHelper {
        public static void AttachDebugger() {
            System.Diagnostics.Debugger.Launch();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以从PowerShell调用该方法,您将获得附加的调试器.

  • 我注意到有时它不起作用.VS启动但异常没有被抓住.请注意,我直接在power shell中使用了这一行:[System.Diagnostics.Debugger] :: Launch() (2认同)
  • 我的想法是使用[Something.DebugHelper] :: AttachDebugger(),所以你在代码中有调试器,然后很容易添加断点等,但可能你的解决方案更简单. (2认同)