以前に .NET ビルド小技集 (4) という記事を書き、
PowerShell でバージョンをインクリメントしてビルドする方法を紹介しました。
今回は、そのツールを改良したうえで NuGet で公開しました。
Visual Studio のプロジェクトに対して、NuGet で KTools.ZipRelease をインストールすると、
次の PowerShell ファイルがプロジェクトに追加されます。
- KTools.VersionIncrement.ps1
- KTools.ZipRelease.ps1
エクスプローラー上で PowerShell スクリプトを実行できます。
KTools.ZipRelease.ps1 により、以下の処理が実行されます。
- バージョン番号のインクリメント (KTools.VersionIncrement.ps1 の呼び出し)
- MSBuild.exe を利用して Release ビルド
- ビルドの結果を ZIP ファイルにする
- ファイル名は「AssemblyName-x.y.z.zip」の形式
- 既定ではプロジェクト フォルダーの下の「zip」フォルダーに作成される
KTools.VersionIncrement.ps1 により、AssemblyInfo.cs 内の
AssemblyVersion 属性および AssemblyFileVersion 属性の値のビルド番号を 1 だけ増加させています。
例えば、1.0.2.0 が 1.0.3.0 に、1.0.2 が 1.0.3 に、1.0.2-alpha が 1.0.3-alpha に変わります。
ちなみに、バージョン番号は .exe および .dll ファイルのプロパティに反映されます。
PowerShell スクリプトのため、各自の要件に合わせてカスタマイズできるでしょう。
また、バージョン番号のインクリメントについては、
KTools.VersionIncrement として単独でインストールして使うことができます。
技術的には、以下の特徴が挙げられます。
ソースコードは Build Release (GitHub) にあります。
- PowerShell の中で C# を利用
- 値を変更する処理で正規表現を利用
- .csproj ファイルからの値の読み込みに XPath を利用
- MSBuild.exe のパスを探索 (たいへん)
- .NET Framework 付属の MSBuild より Visual Studio 付属の MSBuild を優先
追記: ビルド用のスクリプトを Visual Studio の「外部ツール」に登録すると便利です。
また、.NET Core プロジェクト形式向けのビルド スクリプトも追加しました。
作成したツール
Build Release (GitHub)
参照
.NET ビルド小技集 (4)
.NET Framework の正規表現
.nuspec リファレンス
NuGet Package Version Reference