BuildMan

ビルド番号自動更新アプリケーション

BuildManの特徴

アプリケーションのバージョン管理を行うのに、ビルド番号を付けることは非常に有用です。しかし、バージョン番号を更新するならともかく、ビルド番号となるとビルドのたびにリソース中のビルド番号を変更しなければならず、開発者の手を非常に煩わせます。

このアプリケーションは、ビルド番号を自動的に更新することで、そのような負担を軽減します。また、面倒だったバージョン番号の更新を専用GUIを使用して簡単に変更できるようにしました。

使用環境

必須環境

推奨環境

リファレンス

概要

バージョン番号について

BuildManのインストール

BuildManの起動

コマンドラインからの起動

BuildManのユーザーインタフェース

タスクトレイメニュー

アバウトダイアログ・登録

更新履歴ファイル

チュートリアル

VisualC++のプロジェクトの修正

Aboutダイアログでのバージョン番号の参照

バージョン番号・ビルド番号の修正

BuildManについて

利用のご案内

送金について

ユーザーサポートについて

転載・再配布について

免責事項

使用許諾


使用環境

必須環境

ハードウエア

  • Intel 386系プロセッサ
  • Pentium 60MHz以上
  • RAM 16M 以上
  • HDD　1MByte以上の空き領域(インストール時)

OSその他環境

  • Windows 98
  • Windows NT4.0
  • Windows 2000

のいずれかかそれ以上

  • IE3.0以上
  • HTMLHelpViewer1.3以上

開発環境

  • VisualC++ Version 5.0
  • VisualC++ Version 6.0

のいずれかかそれ以上

推奨環境

ハードウエア

  • Pentium 200MHz以上
  • RAM 64M 以上
  • HDD　1MByte以上の空き領域(インストール時)

OSその他環境

  • Windows 98
  • Windows 2000

のいずれかかそれ以上

  • HTMLHelpViewer1.31以上

開発環境

  • VisualC++ Version 6.0


リファレンス

概要

BuildManはVisualC++が生成したリソースファイル(.rc)中のバージョン番号を取得・変更します。このときバージョン番号の最後の桁をビルド番号とし、ビルド時に自動的にビルド番号をインクリメントできます。

バージョン番号について

VisualC++5.0以上のリソースファイルのバージョン番号を変更できます。

VisualC++が生成したリソースファイルのバージョン番号には次のものがあります。

  • プロダクトバージョン (PRODUCTVERSION)
  • ファイルバージョン (FILEVERSION)

また、対応言語分だけ各言語ブロックにプロダクトバージョン・ファイルバージョンが記載されまています。

  • VALUE "ProductVersion"
  • VALUE "FileVersion"

これらのバージョン番号は次のように記載されます。

マイクロソフト推奨

<Mejor Version>.<Minor Version>.<User0>.<User1>

Mejor Version：プロダクトの大きな拡張・修正を表す数

Minor Version：プロダクトの細かな拡張・修正を表す数

User0：ユーザー定義0

User1：ユーザー定義1

マイクロソフトはバージョンのつけ方として、MejorVersion,MinorVersionのみしか推奨しておらず、続く２桁(User0,User1)についてはユーザー定義となっています。

BuildManでは、このUser0をSubVersion,User1をビルド番号として使用します。

BuildMan推奨

<Mejor Version>.<Minor Version>.<Sub Version>.<Build>

Mejor Version：プロダクトの大きな拡張・修正を表す数

Minor Version：プロダクトの細かな拡張・修正を表す数

Sub Version：プロダクトのより細かな拡張・修正を表す数

Build：プロダクトのビルド番号をあらわす数

リソースファイルの例

BuildMan.rc

BuildManのインストール

(1)圧縮ファイル BldMnxxx.lzh （xxxはバージョン番号)を展開します。

(2)BuildMan.exeとBuildMan.chmファイルをWindowsディレクトリにコピーします。

(3)添付ファイルのhhupd.exeを実行します。

インストールは以上の操作で完了です。続いてビルド番号を自動インクリメントするために、VCのプロジェクトからBuildManを呼び出すようにします。

BuildManの起動

BuildManの起動方法には、GUIとコマンドラインからの二通りがあります。まず、GUIからの起動の方法を説明します。

  • エクスプローラーでWindows/BuildMan.exeを起動する。

コマンドラインからの起動

また、BuildManはコマンドラインからでも起動できます。

BuildMan [switch] [resourcefile]

オプションとしては次のものを指定できます。

switch

-t BuildManを起動後、タスクトレイに登録する。

このオプションを使うことでスタートアップ時にタスクトレイへ登録できます。

resourcefile

バージョンが記入されているリソースファイル名を指定します。そのリソースファイルのビルドバージョンを自動的にインクリメントします。このときダイアログは表示されず、すぐに終了します。

オプションに何も指定しなかった場合、ダイアログが表示されます。すでにBuildManを起動していれば、そのBuildManがアクティブになりウィンドウが開かれます。

BuildManのグラフィカルユーザーインタフェース(GUI)

BuildManを起動すると下図のようなメイン画面が表示されます。

プロジェクト一覧からプロジェクトを選択することで、そのプロジェクトのバージョン番号とビルド番号を変更することができます。

Project | 変更可能なプロジェクトです。
Version | そのプロジェクトのバージョン番号です。

Last Update

 最後にビルドされた日時です。
Directory | 対象となるリソースファイルの保存場所です。
[修正...] | リソースファイルの所在を変更します。
[追加...] | プロジェクトを追加します。
[削除...] | プロジェクトを削除します。
プロジェクト名 | 現在変更を加えようとしているプロジェクトです。
バージョン | メジャー、マイナー、サブバージョン番号です。この値を変更することでプロジェクトのバージョン番号を変更することができます。この変更は次回ビルドされたとき有効になります。
ビルド | ビルド番号です。この値を変更することでプロジェクトのビルド番号を変更することができます。この変更は次回ビルドされたとき有効になります。
[Mejor Up] | メジャー番号をインクリメントします。マイナー、サブ番号はゼロクリアされます。
[Minor Up] | マイナー番号をインクリメントします。サブ番号はゼロクリアされます。
[Sub Up] | サブ番号をインクリメントします。
最終更新日 | 最後にビルドされた日時です。
[更新履歴...] | 今までのビルドされた履歴を表示します。
所在 | プロジェクトファイルがあるディレクトリを示しています。
[バージョン] | バージョン情報を表示します。
[ヘルプ] | ヘルプファイルを表示します。

タスクトレイメニュー

タスクトレイに表示されているBuildManのアイコンをクリックすることで以下のメニューが表示され、ダイアログの表示やBuildManの常駐の終了を行うことができます。

表示 | BuildManのGUIを表示します。
ヘルプ | ヘルプファイルを表示します。
バージョン情報 | バージョン情報を表示します。
BuildManの終了 | BuildManの常駐を終了します。

アバウトダイアログ・登録

このダイアログは、バージョン情報の表示とパスワードの設定を行います。

Help | ヘルプファイルを表示します。
Web | サポートホームページを表示します。
User ID | 送金後に発行されたユーザーIDを入力します。
PassWord | 送金後に発行されたパスワードを入力します。
登録 | ユーザーIDとパスワードを登録します。

更新履歴ファイル

BuildManは、今までのビルドの履歴を保持しています。この履歴はテキストファイルとして保存され、そのファイル名はリソースファイル名に"_ver.txt"をつけた名称となります。

次のようなファイルフォーマットで保存されます。

<BLOCK TYPE><cr>
[[DESCRIPTION]<cr>...]
<BLOCK TYPE><cr>
[[DESCRIPTION]<cr>...]
:

BLOCK TYPE | DESCRIPTION
#DESCRIPTION | プロジェクトの名称が記述されます

#UPDATELIST

 更新日時とバージョン番号が記述されます
#COMMENT | ユーザーが記述可能な領域です

実際の更新履歴ファイルは次のように記述されます。

<DiskCleaner_ver.txt>

#DESCRIPTION
DiskCleaner

#UPDATELIST
2000/04/21 13:35:54 Version 4.5.7 build 1018
2000/04/21 13:35:25 Version 4.5.7 build 1017
2000/04/21 11:40:33 Version 4.5.7 build 1016
2000/04/20 18:25:54 Version 4.5.7 build 1015
2000/04/20 18:24:55 Version 4.5.7 build 1014
2000/04/20 18:19:24 Version 4.5.7 build 1013
2000/04/20 11:48:39 Version 4.5.7 build 1012
2000/04/20 11:44:44 Version 4.5.7 build 1011
2000/04/20 11:44:18 Version 4.5.7 build 1010
2000/04/20 11:43:18 Version 4.5.7 build 1009
2000/04/20 11:37:57 Version 4.5.7 build 1008
2000/04/20 11:36:02 Version 4.5.7 build 1007
2000/04/20 11:35:42 Version 4.5.7 build 1006
2000/04/20 11:30:35 Version 4.5.7 build 1005
2000/04/20 11:27:20 Version 4.5.7 build 1004
2000/04/20 11:23:41 Version 4.5.7 build 1003
2000/04/20 11:21:30 Version 4.5.7 build 1002
2000/04/20 11:21:18 Version 4.5.7 build 1001
2000/04/20 11:07:33 Version 4.5.7 build 1000
2000/04/20 10:55:50 Version 4.5.0 build 999
2000/04/20 10:15:19 Version 3.5.0 build 4
2000/04/13 13:41:23 Version 3.5.0 build 3

#COMMENT


チュートリアル

VisualC++のプロジェクトの修正

ビルド時にViasualC++のプロジェクトからBuildManを呼ぶ方法にはいくつかありますが、ビルド番号の自動更新のためには、「ビルド後の処理」でBuildManを呼び出します。

  1. VisualC++のメニューから[プロジェクト][設定]を選択し[プロジェクトの設定]ダイアログを表示します。
  2. リリースビルドを選択します。(上図左上のWin32 Release)
  3. プロジェクトを選択します。(上図左側DiskCleaner)
  4. タブから[ビルド後の処理]を選択します。(上図右上)
  5. ビルド後の処理内容に"ビルド番号の更新"と記入します。この文字列は、ビルド時にアウトプットウィンドウで表示されます。
  6. BuildManへのパスとリソースファイル名を記入します。(例：c:\bin\BuildMan.exe DiskCleaner.rc)
  7. 以降リビルドするたびにビルドバージョンがインクリメントされます。

BuildManが呼び出されるタイミングは、リンクのあとです。そのため、BuildManで設定したバージョンは、次のコンパイルで生成されるオブジェクトで反映されます。この動作について、最も直感的なビルド番号の更新の方法は、リソースファイルのコンパイルの前にビルド番号をインクリメントすることですが、リソースファイルのコンパイル前のイベントを知ることができないためこのような動作になっています。

Aboutダイアログでのバージョン番号の参照

通常アプリケーションのAboutダイアログでアプリケーションのバージョン番号を表示します。BuildManでバージョン番号を自動更新するようになれば、そのバージョン番号やビルド番号をAboutダイアログに表示したくなります。以下にそのためのサンプルコードを示します。

まず、Aboutダイアログに次のコントロールを追加します。

Static | IDS_VERSION
Static | IDS_BUILD

次に、CAboutDlgに次のコードを追加します。

BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/////リソースからバージョン情報を取得する
char szModuleName[MAX_PATH];
GetModuleFileName(AfxGetApp()->
  m_hInstance,szModuleName,MAX_PATH);

DWORD dwDummy,dwInfoSize;
dwInfoSize = GetFileVersionInfoSize(szModuleName,&dwDummy);
char* pszVersion = new char[dwInfoSize + 2];
GetFileVersionInfo(szModuleName,0,dwInfoSize,pszVersion);

unsigned int dwLen;
void* pszVer;
VerQueryValue(pszVersion,"\\",&pszVer,&dwLen);
VS_FIXEDFILEINFO *pfi = (VS_FIXEDFILEINFO*)pszVer;

DWORD dwMS = pfi->dwFileVersionMS;
DWORD dwLS = pfi->dwFileVersionLS;
CString strVer,strBuild;
strVer.Format("%d.%d.%d",HIWORD(dwMS),LOWORD(dwMS),HIWORD(dwLS));
strBuild.Format("%d",LOWORD(dwLS));
if(pszVersion)
delete pszVersion;

/////

ASSERT(GetDlgItem(IDS_VERSION));
ASSERT(GetDlgItem(IDS_BUILD));
GetDlgItem(IDS_VERSION)->SetWindowText(strVer);
GetDlgItem(IDS_BUILD)->SetWindowText(strBuild);

return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
}

バージョン番号とビルド番号が表示されることを確認してください。

バージョン番号・ビルド番号の修正

BuildManを起動すると次のような画面が表示されます。

バージョン番号(メジャーバージョン、マイナーバージョン、サブナンバー)や、ビルド番号を変更するには、エディットボックスを直に編集するか、スピンボタンを押すか、Mejor Up、Minor Up、Sub Upなどのボタンを押します。

この変更はすぐにリソースファイルに反映され、次回ビルドしたときにオブジェクトへ反映されます。


BuildManについて

利用のご案内

BuildManは、シェアウエアです。９０日間の試用期間を経て継続してご利用になる場合は、下記の送金方法のいずれかで送金をお願いいたします。

しかしながら、フリーウエアやメールウエアなど対価を伴わないソフトウエアについては、本ソフトウエアもその趣旨に賛同いたしますので使用料をいただきません。メールでご連絡いただければパスワードを発行いたします。

送金方法について

ライセンスの数え方は、基本的に１クライアント１ライセンスとします。しかし、一人のユーザーが複数のマシンを使用するような環境もありますので、１ユーザー１ライセンスとします。いずれか、ライセンス数がもっとも少なくなる数え方を適用します。

Vector Designの送金代行システムを利用する

    ベクターデザインでは、クレジットカードをお持ちの方に限り シェアウエアの送金を代行する「ベクターシェアレジ」というサービスを行っています。
    このアプリケーションの送金を行うには、次のPACKソフト番号 を指定して送金をお願いいたします。

    シェアレジソフト番号〕 | SR017380
    〔金額〕 | 700円

ベクターシェアレジソフトウエアショップ

ニフティーサーブの送金代行システムを利用する

ニフティーサーブかInfoWebのアカウントをお持ちの方で、通話料金をクレジットカードでお支払いの方は、＠ニフティーから送金を行うことができます。
このアプリケーションの送金を行うには、次のシェアウエア番号 を指定して送金お願いいたします。

〔シェアウエア番号〕 | 10918
〔金額〕 | 700円

ニフティーサーブからの送金手順

    1. （ニフティーサーブへログイン）
    2. 「GO SWREG」と入力し送金代行サービスに入る
    3. 2番「送金システム」 を選択する
    4. 1番「シェアウエア番号指定」を選択する
    5. 当アプリケーション番号「」を入力する
    6. アプリケーションを確認した上で送金する
インターウェイからの送金

インターウェイ送金サービス

銀行振り込みにより送金する（メールアドレスをお持ちの方のみ）

銀行振り込みの場合、次の項目をメールでお知らせください。

◆アプリケーション名 | 「BuildMan」
◆氏名 | 山田太郎
◆メールアドレス | tarou@mountain.co.jp

    入金確認後メールにてパスワードをお伝えいたします。

    送金先：
    CITIBANK 秋葉原支店(027) 普通 3656292

ユーザーサポートについて

最新版の公開やバグレポートなどのユーザーサポートは、ホームページにて行っております。

MGの館

また、メールでもサポートを行っております。

NiftyServe HGE02574@nifty.ne.jp

転載・再配布について

    基本的に自由です。しかし、対価を伴う媒体への掲載はメールをお願いいた します。また、現状のファイル構成で許可するものとし、改変、増補、削除 したものは許可しません。

免責事項

    このアプリケーションの使用に伴って発生したいかなる損害についても当方では一切の責任を負いかねます。利用者の責任においてご利用く ださい。

使用許諾

  1. 試用期間はインストールから90日間とし、以後はライセンスを必要とする。
  2. ライセンスは、本アプリケーションの使用権である。
  3. ライセンスは、次項「シェアウエア送金」に規定される使用料を支払うこと でユーザーが取得できる。
  4. ライセンス取得後は継続して利用でき使用期限はなくなる。
  5. ライセンスは「１ユーザーあたり１ライセンス」か「 １クライアントマシンあたり１ライセンス」とし、ユーザーの支払いが最小となる条件を適用する。 ただし、1ライセンスについて同時にこの二つの条件を適用すること はできない。
  6. ライセンスは、作者が今後のバージョンアップおよびバグの修正、発生した いかなる損害について保証するものではない。
  7. ライセンスは、ユーザーの再配布、改変、改変後の再配布を許可するもので はない。
  8. 本アプリケーションを使用するアプリケーションがすべて対価を伴わないものならばライセンスを取得できる。


ResourceFile

リソースファイルの例　(BuildMan.rcの場合)

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1, 0, 3, 19
PRODUCTVERSION 1, 0, 3, 19
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041104b0"
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "BuildMan MFC ｱﾌﾟﾘｹｰｼｮﾝ\0"
VALUE "FileVersion", "1, 0 , 3, 19\0"
VALUE "InternalName", "BUILDMAN\0"
VALUE "LegalCopyright", "Copyright (C) 2000\0"
VALUE "OriginalFilename", "BUILDMAN.EXE\0"
VALUE "ProductName", "BUILDMAN ｱﾌﾟﾘｹｰｼｮﾝ\0"
VALUE "ProductVersion", "1, 0, 3, 19\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x411, 1200
END
END