I'm trying to write a PowerShell module as a VB.NET project with Visual Studio 2015. I've been able to put a few commands together, compile the class library into a DLL, import the module into a PowerShell session and call the command I created. All good so far. But as I'm expanding this module I'm going to need to be able to debug it.
So I added another project to the solution, a console application. I set it as the startup project and referenced the PowerShell class in the first project. So far when I call the PowerShell function I wrote all the work is being done in the EndProcessing()
subroutine. I can't call that from my console app because It's protected.
The question: How do I properly call my Get-TestCommand
PowerShell function from a console app in such a way that Visual Studio knows I'm referencing code in a separate project and not the compiled DLL while triggering the breakpoints I put in the Powershell class library?
It's possible to debug your cmdlet directly without needing a separate project. Open the properties of your class library project and configure the Debug
tab as follows (assuming Windows is installed to C:
):
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-NoLogo -Command "Import-Module '.\MyModule.dll'; Get-TestCommand;"