如何在Visual Studio中调试Windows PowerShell模块?

8 浏览
0 Comments

如何在Visual Studio中调试Windows PowerShell模块?

我正在尝试使用Visual Studio 2015的VB.NET项目编写PowerShell模块。我已经能够组合一些命令,将类库编译成DLL,将模块导入到PowerShell会话中并调用我创建的命令。到目前为止都很顺利。但是,随着我扩展这个模块,我需要能够调试它。\n所以我在解决方案中添加了另一个项目,一个控制台应用程序。我将其设置为启动项目,并引用了第一个项目中的PowerShell类。到目前为止,当我调用我编写的PowerShell函数时,所有的工作都是在EndProcessing()子程序中完成的。我无法从我的控制台应用程序中调用它,因为它是受保护的。\n问题是:如何正确地从控制台应用程序中调用我的Get-TestCommandPowerShell函数,以便Visual Studio知道我正在引用一个独立项目中的代码,而不是编译后的DLL,并触发我在PowerShell类库中设置的断点?

0
0 Comments

问题:如何在Visual Studio中调试Windows PowerShell模块?

原因:这个问题的原因是作者正在尝试调试一个编译为DLL并从PowerShell中调用的VB.net代码,但他无法找到一种有效的方法在Visual Studio中进行调试。

解决方法:有两种解决方法:

1. 下载并安装Visual Studio 2015的PowerShell Tools插件,这个插件提供了在Visual Studio中调试PowerShell模块的功能。

2. 使用Windows PowerShell ISE,它提供了在本地计算机上使用Windows PowerShell集成脚本环境(ISE)可视化调试功能的方法。

以下是如何在Windows PowerShell ISE中调试脚本的步骤:

1. 如何管理断点

2. 如何管理调试会话

3. 如何在调试过程中逐步执行、进入和退出

4. 如何显示变量的值

可以在Windows PowerShell ISE的帮助文档中找到更详细的说明。

请注意,不建议仅回答一个带有链接的一行答案,因为链接可能会失效。同时,也不建议从链接中提取大段文字作为答案,因为这样会让读者感到困惑。

如果已经安装了PowerShell Tools for Visual Studio并且正在从PowerShell脚本中调用DLL,可以尝试手动将Visual Studio调试器附加到PowerShell实例,这样可以在不禁用调试功能的情况下进行调试。

如果需要以提升的权限运行代码并设置Set-ExecutionPolicy RemoteSigned,可以参考这篇文章中的解决方案。

0
0 Comments

如何在Visual Studio中调试Windows PowerShell模块?

问题原因:

- 调试Windows PowerShell模块时,需要配置项目以启动PowerShell并加载模块。

- Visual Studio的不同版本和项目类型需要不同的配置。

解决方法:

- 针对.NET (Core)项目(适用于Visual Studio 2022):

1. 打开类库项目的属性。

2. 在“调试”部分,点击“打开调试启动配置UI”链接。

3. 在“启动配置”窗口,点击“创建新配置”按钮,并选择“可执行文件”。

4. 配置新的启动配置:

- 可执行文件:C:\Program Files\PowerShell\7\pwsh.exe

- 命令行参数:-NoLogo -Command "Import-Module '.\MyModule.dll'; Get-TestCommand;"

5. 关闭“启动配置”窗口。

6. 点击“开始调试”工具栏按钮上的下拉箭头,选择新的启动配置。

- 针对.NET Framework项目(适用于Visual Studio 2022)或所有.NET项目(适用于Visual Studio 2019及更早版本):

1. 打开类库项目的属性。

2. 配置“调试”选项卡:

- 启动操作:

- 启动外部程序:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 或 C:\Program Files\PowerShell\7\pwsh.exe

- 启动选项:

- 命令行参数:-NoLogo -Command "Import-Module '.\MyModule.dll'; Get-TestCommand;"

以上配置完成后,即可开始在Visual Studio中调试Windows PowerShell模块。

以下是调试示例截图:

![Debugging a Windows PowerShell cmdlet in Visual Studio](https://i.stack.imgur.com/bkfnA.png)

以上方法在Visual Studio 2022中适用于pwsh.exe的调试。在回答中已更新了针对.NET (Core)项目的配置说明。

感谢.Matthews的帮助。关键是我没有注意到可以创建两种调试配置:可执行文件和项目。我之前创建的是项目配置。谢谢!

0