17

我正在尝试使用 Visual Studio 2015 将 PowerShell 模块编写为 VB.NET 项目。我已经能够将一些命令放在一起,将类库编译为 DLL,将模块导入 PowerShell 会话并调用我创建的命令。到目前为止一切都很好。但是当我扩展这个模块时,我需要能够调试它。

所以我在解决方案中添加了另一个项目,一个控制台应用程序。我将其设置为启动项目,并在第一个项目中引用了 PowerShell 类。到目前为止,当我调用 PowerShell 函数时,我编写的所有工作都在EndProcessing()子例程中完成。我不能从我的控制台应用程序中调用它,因为它受到保护。

问题:我如何Get-TestCommand从控制台应用程序中正确调用我的 PowerShell 函数,以便 Visual Studio 知道我在触发我放入 Powershell 类库中的断点时引用的是单独项目中的代码而不是编译的 DLL?

4

2 回答 2

26

无需单独的项目即可直接调试 cmdlet。打开你的类库项目的属性,配置Debug选项卡如下(假设Windows安装到C:):

  • 开始行动
    • 启动外部程序:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
  • 启动选项
    • 命令行参数:-NoLogo -Command "Import-Module '.\MyModule.dll'; Get-TestCommand;"

用于 PowerShell 调试的类库项目配置

调试 PowerShell cmdlet

于 2016-02-09T19:19:06.497 回答
0

编辑:试试这个链接或者这个一步一步

下载适用于 Visual Studio 2015 的 PowerShell 工具 或使用Windows PowerShell ISE

如何在 Windows PowerShell ISE 中调试脚本

更新日期:2013 年 10 月 17 日 适用于:Windows PowerShell 2.0、Windows PowerShell 3.0、Windows PowerShell 4.0、Windows PowerShell 5.0 本主题介绍如何使用 Windows PowerShell® 集成脚本环境 (ISE) 可视化调试功能在本地计算机上调试脚本. 如何管理断点 如何管理调试会话 如何在调试时单步执行、单步执行和单步跳出 如何在调试时显示变量的值
如何管理断点 断点是脚本中您希望操作暂停的指定点,以便您可以检查变量的当前状态和脚本运行的环境。一旦你的脚本被断点暂停,你可以在控制台窗格中运行命令来检查你的脚本的状态。您可以输出变量或运行其他命令。您甚至可以修改对当前运行脚本的上下文可见的任何变量的值。检查完您想看到的内容后,您可以恢复脚本的操作。您可以在 Windows PowerShell 调试环境中设置三种类型的断点: 行断点。脚本运行过程中到达指定行时脚本暂停...

于 2016-02-09T18:23:24.767 回答