代码之家  ›  专栏  ›  技术社区  ›  Steve Rukuts

Powershell核心模块的适当调试工作流是什么?

  •  2
  • Steve Rukuts  · 技术社区  · 8 年前

    • 将调试可执行文件配置为Powershell路径
    • 将调试参数设置为加载模块的简短脚本,并在适当的情况下执行正在测试的函数。

    但是,这对Powershell内核不起作用。因为项目依赖于NuGet包,所以模块注册失败,并出现依赖项错误。我可以想出另一个工作流程,但有点迟钝:

    • 导航到项目目录
    • 执行 dotnet publish -f netstandard2.0 -c debug
    • 执行 Import-Module ./bin/Debug/netstandard2.0/publish/MyModule.dll
    • $pid 找到PID
    • 通过visualstudio中的Attach to Process附加到PID

    1 回复  |  直到 8 年前
        1
  •  2
  •   Steve Rukuts    7 年前

    我最初提出了一种基于脚本的方法,你可以在这篇文章的历史中看到,但是我当时不知道的是 CopyLocalLockFileAssemblies 属性,该属性使调试目录看起来像在.NET Framework上工作时的样子。你只需要把这个加到你的 .csproj <PropertyGroup> :

    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    

    1. 右键单击Powershell模块项目并单击属性
    2. 选择调试
    3. 可执行文件: C:\Program Files\PowerShell\6\pwsh.exe
    4. 论据: -NoExit -Command "Import-Module C:\dev\my-module\bin\Debug\netstandard2.0\my-module.dll"
    5. 按F5开始调试。