In part 1 of this blog post series I showed the end result of the PowerShell Script Gallery Upload ISE Add-On which I created. In this post I explain the steps I took to create this ISE Add-On.

As starting point I used the blog post from Jason Stangroome called Create a PowerShell v3 ISE Add-on Tool.

The high-level steps are the following:

  1. Open Visual Studio and create a new WPF User Control Library project. The new project should contain a new UserControl1.
  2. Add a new Project Reference to the Microsoft.PowerShell.GPowerShell (version 3.0) assembly located in the GAC.
  3. Open the UserControl1.xaml.cs code-behind file and change the UserControl1 class to implement the IAddOnToolHostObject interface.
  4. Add Browser Object to UserControl1.
  5. Add PowerShell script to load ISE Add-On as reference.
  6. Build Solution.
  7. Open ExamplePowerShellISEAddOn.ps1 from build folder in PowerShell ISE.

Pre-requisites:

  • Visual Studio (I used Visual Studio Ultimate 2012)

Step 1. Open Visual Studio and create a new WPF User Control Library project. The new project should contain a new UserControl1.

image

Step 2. Add a new Project Reference to the Microsoft.PowerShell.GPowerShell (version 3.0) assembly located in the GAC.

image

image

image

Step 3. Open the UserControl1.xaml.cs code-behind file and change the UserControl1 class to implement the IAddOnToolHostObject interface.

Before:

image

After:

image

Save.

Step 4. Add Browser Object to UserControl1.

image

Search in Toolbox for WebBrowser Control and drag and drop on UserControl1.xaml.

Go to properties pane for new WebBrowser Control.

image

Enter Source.

image

Step 5. Add PowerShell script to load ISE Add-On as reference.

Open PowerShell ISE and save following script with correct folder path to c:\temp\ExamplePowerShellISEAddOn.ps1

add-type -path "C:\Users\stefstr\Documents\Visual Studio 2012\Projects\ExamplePowerShellISEAddOn\ExamplePowerShellISEAddOn\bin\Debug\ExamplePowerShellISEAddOn.dll" $psISE.CurrentPowerShellTab.VerticalAddOnTools.Add('ExampleISEAddOn', [ExamplePowerShellISEAddOn.UserControl1], $true)

Go back to Visual Studio and add ExamplePowerShellISEAddOn.ps1 add PowerShell script as existing item.

image

image

Step 6. Build Solution.

image

Step 7. Open ExamplePowerShellISEAddOn.ps1 from build folder in PowerShell ISE.

image

image

image

Next steps you could do is improving the WebBrowser Control or adding navigation buttons and code to the ISE Add-On.

You can also look at Script Gallery ISE Add-On project page for what I’ve added to the WebBrower control.

 

References: