MFCアプリでFILEVERSION文字列をプログラムで更新するにはどうすればよいですか?特定のリリースのSVNrevを含むヘッダーファイルを生成するために使用するビルドプロセスがあります。http://www.compuphase.com/svnrev.htmのSvnRevを使用して、MFCアプリのキャプションバーを設定するために使用するヘッダーファイルを更新しています。ここで、この#defineをFILEVERION情報に使用します。
続行するための最良の方法は何ですか?
MFCアプリでFILEVERSION文字列をプログラムで更新するにはどうすればよいですか?特定のリリースのSVNrevを含むヘッダーファイルを生成するために使用するビルドプロセスがあります。http://www.compuphase.com/svnrev.htmのSvnRevを使用して、MFCアプリのキャプションバーを設定するために使用するヘッダーファイルを更新しています。ここで、この#defineをFILEVERION情報に使用します。
続行するための最良の方法は何ですか?
.rc
ファイルは、#include
ファイルと同じように.c
ファイルにヘッダーを付けることができます。version.h
次のようなものを定義する自動生成ファイルがあります。
#define MY_PRODUCT_VERSION "0.47"
#define MY_PRODUCT_VERSION_NUM 0,47,0,0
次に、.rc
ファイル#include "version.h"
を取得し、それらの定義を使用します。
VS_VERSION_INFO VERSIONINFO
FILEVERSION MY_PRODUCT_VERSION_NUM
PRODUCTVERSION MY_PRODUCT_VERSION_NUM
...
VALUE "FileVersion", MY_PRODUCT_VERSION "\0"
VALUE "ProductVersion", MY_PRODUCT_VERSION "\0"
...
MFC プロジェクトでこの手法を試したことはありません。VS_VERSION_INFO
リソースをファイルに移動する必要がある場合があり.rc2
ます (Visual Studio では編集されません)。
まだコメントするのに十分なポイントはありませんが、どのソリューションを選択するにしても、FILEVERSION フィールドは短い整数しかサポートできないことに注意してください。私たちの状況では、SVN リビジョンはすでにこれを上回っていたため、FILEVERSION のリビジョン番号が無効になりました。
application.rcファイルには、バージョンブロックがあります。このブロックは、ファイルシステムに表示されるバージョン情報を制御します。
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
このファイルはプログラムで更新できます。必ずファイルを開いてバイナリとして保存してください。編集がテキストとして行われ、ファイルが破損するという問題がありました。
VS_VERSION_INFO
エクスプローラーでファイルを右クリックしてプロパティのみを表示すると、変更が反映されます。
キャプションバーに現在のSVNリビジョン番号を表示したい場合は、次のことをお勧めします。
#define SVN_VERSION_NO xxx
たぶんこれが役立つかもしれません:バージョニング管理されたビルド