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

标签 .net visual-studio powershell debugging powershell-module

我正在尝试使用 Visual Studio 2015 将 PowerShell 模块编写为 VB.NET 项目。我已经能够将一些命令放在一起,将类库编译为 DLL,将模块导入 PowerShell session 并调用我创建的命令。到目前为止一切都很好。但是当我扩展这个模块时,我需要能够调试它。
所以我在解决方案中添加了另一个项目,一个控制台应用程序。我将其设置为启动项目,并在第一个项目中引用了 PowerShell 类。到目前为止,当我调用 PowerShell 函数时,我写的所有工作都在 EndProcessing() 中完成。子程序。我不能从我的控制台应用程序中调用它,因为它受到保护。
问题:如何正确调用我的Get-TestCommand来自控制台应用程序的 PowerShell 函数以这样一种方式,即 Visual Studio 知道我在触发我放入 Powershell 类库中的断点时引用的是单独项目中的代码而不是编译的 DLL?

最佳答案

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

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

  • Class library project configuration for PowerShell debugging

    Debugging a PowerShell cmdlet

    关于.net - 如何在 Visual Studio 中调试 Windows PowerShell 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35298963/

    相关文章:

    .net - 在项目开始时组建团队时应该牢记什么样的团队结构?

    .net - 可以使用 OnDeserializedAttribute 代替 IDeserializationCallback 接口(interface)吗?

    C# 纯函数字典

    c++ - 如何管理生成静态库和 dll 的构建库项目?

    使用 Ctrl-C 跳过 Powershell 最后 block

    sharepoint - Sharepoint WebPart部署-激活功能错误

    .NET 抛出自定义异常

    javascript - 在 Visual Studio 项目之间共享 HTML/Javascript

    c# - VS 2012 支持 Windows Mobile 6

    Powershell 错误复制项无法将参数绑定(bind)到参数 'path',因为它为空