銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

CLR/H in Tokyo 1 で 「C# で作る PowerShell Cmdlets のすゝめ」というLTをしてきました

土曜日に、CLR/H in Tokyo 1 に参加してLTをしてきました。当日のつぶやきはこちらでどうぞ。

CLR/H in Tokyo #clrhtky1 - Togetterまとめ

日程変更があったわけですが、当初の日程だと弊社新タイトルのリリース間近で参加が厳しかったところ、日程変更があったおかげで私は参加できました。結果的には参加できて非常によかったです。

私のLTの資料はこちら。

資料の中で書いているサンプルのコマンドレットクラスの全体はこちらになります。

2点ほど補足すると、まずコマンド実行時引数の取り回しは、Mono.Options が割と便利っぽいです。

また、ビルドした dll を Import-Module するとPowerShellセッションを閉じないと解放されないと書いてある点ですが、StackOverFlowにその理由がありました。

.net - Powershell Unload Module... completely - Stack Overflow

dllをインポートする際に、通常の .NET Framework 同様 AppDomainに追加するので PowerShellレベルではできないよ、ということのようです。(PowerShellレベルだと Remove-Module 関数があるんですけどね...) ただ、これは AppDomain をほげもげするとバイナリモジュールを解放する仕組みができるのでは?と思ったり思わなかったり...