我正在开发一个二进制PowerShell模块。我已经设置了该模块项目的调试选项卡以启动PowerShell控制台并导入我的模块。如果我按F5,它会如预期地运行。
我遇到的问题是Visual Studio实际上没有"连接"到该过程。模块窗口为空,我的断点也没有被击中。
如果我手动启动PowerShell并附加到该过程...BOOM!我就可以进行调试了。
按F5会比一遍又一遍地构建+启动+附加要好得多:|
有什么想法吗?
编辑:
我发现如果启用非托管代码调试,我将看到已加载的模块。这很合理,因为PowerShell.exe是非托管的。问题现在是,在模块窗口中,我所有程序集的符号状态都是"符号文件中没有本机符号"。进程"powershell.exe"是"本机的",而不是"托管的(v2.0.50727)"。看起来VS决定以本机方式而不是管理方式进行调试。有什么方法可以改变这个吗?
我遇到的问题是Visual Studio实际上没有"连接"到该过程。模块窗口为空,我的断点也没有被击中。
如果我手动启动PowerShell并附加到该过程...BOOM!我就可以进行调试了。
按F5会比一遍又一遍地构建+启动+附加要好得多:|
有什么想法吗?
编辑:
我发现如果启用非托管代码调试,我将看到已加载的模块。这很合理,因为PowerShell.exe是非托管的。问题现在是,在模块窗口中,我所有程序集的符号状态都是"符号文件中没有本机符号"。进程"powershell.exe"是"本机的",而不是"托管的(v2.0.50727)"。看起来VS决定以本机方式而不是管理方式进行调试。有什么方法可以改变这个吗?
<supportedRuntime version="v4.0.30319"/>
,则所有的 PowerShell 控制台会话都将使用 .NET 4 运行。 - Roman Kuzmin