As you probably know, ISESteroids ships with some free 3rd party tools like WinMerge and the XAML editor Kaxaml. These tools are used by ISESteroids to enhance your PowerShell experience. On some installations, the tools do not seem to work. Here is why.
Portable Apps – Restrictions
Portable apps like WinMerge and Kaxaml store their settings in their respective program folder. This is why they are portable. However, if you have installed ISESteroids to a place where regular users cannot write, this also applies for the 3rd party tools shipped with ISESteroids. They fail with an error message.
The current workaround is to install ISESteroids in your personal document module location ($Home\Documents\WindowsPowerShell\Modules). We are working on this, and in a future version, there will be an option to copy 3rd party applications to $env:appdata or another writeable location.
Why ISESteroids Is Not Affected
ISESteroids is a portable app itself, but is not affected by install location. ISESteroids is clever enough to detect when it is installed in a write-protected location, and bails out, storing settings to $env:appdata\ISESteroids. In fact, it always stores personal data at this place unless you create a folder named “AppData” inside the ISESteroids module folder. Once you do this, personal settings are stored inside the ISESteroids module, making it portable. This can be useful when you load it via USB stick or via cloud-based drives.
More about ISESteroids Zero-Touch and AppData, along with plenty of useful deployment considerations, can be found here: http://www.powertheshell.com/isesteroids2/isesteroids-install-deployment-considerations/.
Why is ISESteroids shipping WinMerge in the first place? It is used to compare different script versions when you use the versioning control. You can find out more about this feature here: http://www.powertheshell.com/isesteroids2/feature-overview/file-version-control/. This article will also explain how you can call WinMerge from another location, or how to use a different file comparison tool altogether, for example Visual Studio.
Why is ISESteroids shipping Kaxaml, a light-weight XAML editor? To help you edit and examine XAML code in your PowerShell scripts! You can launch Kaxaml to display XAML UIs and edit the XAML code with Intellisense support. Actually, ISESteroids ships with a specially tailored version of Kaxaml that makes editing XAML even easier.
Here is a quick walk-through on WPF support in ISESteroids that shows how to invoke Kaxaml, and also a bunch of other WPF ticks like adding PowerShell code behind to display XAML, and adding PowerShell event handlers to your WPF code: http://www.powertheshell.com/wpf-support-in-isesteroids/. Note that you can use VisualStudio 2012 (including the free Express and Community editions) or better in place of Kaxaml, too, for an even better WPF editing experience.