As I was trying to debug my custom powershell commandlets through visual studio I had the problem that it was not hitting the breakpoints automatically when running through F5.
The trick is to create a powershell.exe.cfg in your PowerShell folder (C:\Windows\System32\WindowsPowerShell\v1.0):
<?xml version="1.0"?>      
<configuration>       
  <startup useLegacyV2RuntimeActivationPolicy="true">       
   <supportedRuntime version="v2.0.50727"/>       
  </startup>       
</configuration>
The other steps to follow are still quite the same as Bart De Smet has explained in his blogpost here: http://bartdesmet.net/blogs/bart/archive/2008/02/03/easy-windows-powershell-cmdlet-development-and-debugging.aspx
Some things I did differently are setting post build events like this:    
@SET GACUTIL="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe"      
@SET INSTALLUTIL="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\installutil.exe" 
%GACUTIL% -if Shaks.PowerShell.SharePoint.Cmdlets      
%INSTALLUTIL% -i Shaks.PowerShell.SharePoint.Cmdlets.dll
In the Debug-tab of the project properties I start an external program (powershell.exe) with the following attributes:
-PSConsoleFile Shaks.PowerShell.SharePoint.Cmdlets.psc1 -noexit
I’ll post my psc1 file here for reference, although you can just generate this:
<?xml version="1.0" encoding="utf-8"?>      
<PSConsoleFile ConsoleSchemaVersion="1.0">       
  <PSVersion>2.0</PSVersion>       
  <PSSnapIns>       
    <PSSnapIn Name="shaks.powershell.sharepoint.cmdlets" />       
  </PSSnapIns>       
</PSConsoleFile>
The commandlet itself will be for a next blogpost.
 
