PowerShell Providerの作り方資料

ロードしているアセンブリ名前空間ディレクトリに見立てて、クラスや、クラスのメンバを表示できるPSProviderを作成しています。
参考にした資料をメモしておきます。

ここに詳しい作り方が載っています。もう一つ上の階層にはPSHostの作り方も載っていて、こちらも一度チャレンジしたのですが、コマンドの結果を出力する辺りまで作って挫折中です。

作成したPSProviderはSnap-inとして登録しなくてはならないのですが、そのやり方が説明されています。なんか長いですが、コンパイルするところはVisual Studio使うなら関係ないので、結局のところは、InstallUtil.exeで作成したDLLを登録し、Add-PSSnapinでSnap-inを追加、PSProviderの場合は、New-PSDriveするだけです。オブジェクトの表示方法も変更したい場合は、Update-FormatDataも必要かもしれません。自分は、作成したPSProviderをコンパイルするたびに、

Set-Alias installutil C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
$dll = "C:\Projects\AppDomainProvider\bin\Release\AppDomainProvider.dll"
cp $dll c:\work\ps\env\dll
installutil c:\work\ps\env\dll\AppDomainProvider.dll
Add-PSSnapin AppDomainSnapIn
New-PSDrive -name AppDomain -psprovider AppDomain -Root ""
Update-FormatData -prepend c:\work\ps\env\AppDomain.Format.ps1xml

という処理を流して、更新しています。ただ、一度PowerShellにAdd-PSSnapinすると?DLLがつかまれてしまうらしく、上書きできなくなるので、コンパイルするたびにPowerShellを再起動しなければならないのが面倒です。なにか良いやり方はないでしょうか?

オブジェクトの表示を変更する方法について説明されています。が、これをみるよりも、$PSHOMEにおいてある、foobar.format.ps1xmlを参考にしたほうが早かったりします。僕が英語苦手なだけですが……。