Dot-Net

如何在 Visual Studio 中調試 Windows PowerShell 模組?

  • October 15, 2021

我正在嘗試使用 Visual Studio 2015 將 PowerShell 模組編寫為 VB.NET 項目。我已經能夠將一些命令放在一起,將類庫編譯為 DLL,將模組導入 PowerShell 會話並呼叫我創建的命令。到目前為止一切都很好。但是當我擴展這個模組時,我需要能夠調試它。

所以我在解決方案中添加了另一個項目,一個控制台應用程序。我將其設置為啟動項目,並在第一個項目中引用了 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;"

用於 PowerShell 調試的類庫項目配置

調試 PowerShell cmdlet

**編輯:**試試這個連結或者這個一步一步

下載適用於 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 調試環境中設置三種類型的斷點: 行斷點。腳本執行過程中到達指定行時腳本暫停…

引用自:https://stackoverflow.com/questions/35298963