ビルド番号のインクリメント - Visual C++
C/C++ で、ネイティブ なモジュールを開発していて面倒なのが、ビルドナンバーのインクリメントです。
モジュールが少ないうちは手で更新することもできますが、多くなってくると手で更新することは現実的では
ありません。やり方は色々あるでしょうが、バッチファイルのみで簡単にできる方法を紹介します。
1. ビルド番号を定義するヘッダーファイルを作成
ここでは、ファイル名をBuildNo.h、ビルド番号をBUILDNO としています。
---
#pragma once
#define BUILDNO 1
#define BUILDNO_STR "1"
---
2. ビルド番号をインクリメントするバッチファイルを作成
1 で用意したBuildNo.h をパースして、ビルド番号を取得&インクリメントした後、BuildNo.h を
作成します。上書きしてしまうことが不安な人は、オリジナルをリネームしてバックアップしておくと
良いかも しれません。ここは、ファイル名をIncrementBuildNo.cmd とします。
---
@echo off
set HEADERFILE=%~dp0BuildNo.h
for /F "usebackq tokens=1,2,3" %%i in ("%HEADERFILE%") do (
if "%%i"=="#define" (
if "%%j"=="BUILDNO" (
set BuildNo=%%k
)
)
)
if "%BuildNo%"=="" (
echo エラー: ビルド番号が取得できませんでした
exit /b 1
)
rem ビルド番号のインクリメント
set /a NewBuildNo=%BuildNo%+1
rem 新しい BuildNo.h の生成
echo #pragma once >> "%HEADERFILE%"
echo. >> "%HEADERFILE%"
echo #define BUILDNO %NewBuildNo% >> "%HEADERFILE%"
echo #define BUILDNO_STR "%NewBuildNo%" >> "%HEADERFILE%"
---
3. RC ファイルを修正
ビルド番号を使うように、RCファイルを修正します。以下は、修正が必要な部分を抜粋しています。
---
FILEVERSION 1.0.0.BUILDNO
PRODUCTVERSION 1.0.0.BUILDNO
VALUE "FileVersion", "1.0.0." BUILDNO_STR
VALUE "ProductVersion", "1.0.0." BUILDNO_STR
---
4. ビルド前にバッチファイルを呼び出す
makefile やMSBUILD などのビルド前の処理に、2 で用意したバッチファイルを呼び出すようにすれば、
ビルドする度にBuildNo.h のビルド番号がインクリメントされます。
投稿日時 : 2011年11月16日 18:25
Tweet

コメントを追加