PowerShell でアセンブリのバージョン番号を v1.0.0 の形式で取得する

タイトルの通り PowerShell で exe や dll のバージョン番号を v1.0.0 のような形式で取得する方法を紹介します。
バージョン番号を使って Git のタグづけをしたり、 Compress-Archive で Zip に固めたりするのに便利です。
スニペット
結論のスニペットからどうぞ。
$vi = (Get-ItemProperty $exePath).VersionInfo
$fileVersion = "v" + ($vi.FileMajorPart) + "." + ($vi.FileMinorPart) + "." + ($vi.FileBuildPart)
Write-Output $fileVersion以上です。
説明
あまり説明することもないですが、さすがに手抜きすぎるので、簡単に解説します。
バージョン番号は メジャーパート.マイナーパート.ビルドパート.プライベートパート となっています。
まず (Get-ItemProperty $exePath).VersionInfo で FileVersionInfo クラスのインスタンスが得られます。
このインスタンスの各プロパティがバージョン番号の各パートに相当します。
| パート | プロパティ |
|---|---|
| メジャー | FileMajorPart |
| マイナー | FileMinorPart |
| ビルド | FileBuildPart |
| プライベート | FilePrivatePart |
あとはこれを文字列結合すれば好きな形式でバージョン文字列が得られるというわけですね。
ちなみに実行ファイルのバージョンには「製品バージョン」と「ファイルバージョン」 があり、上記は「ファイルバージョン」の取得用です。「製品バージョン」の場合は Product~ を使用します。
| パート | プロパティ |
|---|---|
| メジャー | ProductMajorPart |
| マイナー | ProductMinorPart |
| ビルド | ProductBuildPart |
| プライベート | ProductPrivatePart |




