7

MFCアプリでFILEVERSION文字列をプログラムで更新するにはどうすればよいですか?特定のリリースのSVNrevを含むヘッダーファイルを生成するために使用するビルドプロセスがあります。http://www.compuphase.com/svnrev.htmのSvnRevを使用して、MFCアプリのキャプションバーを設定するために使用するヘッダーファイルを更新しています。ここで、この#defineをFILEVERION情報に使用します。

続行するための最良の方法は何ですか?

4

5 に答える 5

14

.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 では編集されません)。

于 2008-09-20T19:13:10.363 に答える
3

まだコメントするのに十分なポイントはありませんが、どのソリューションを選択するにしても、FILEVERSION フィールドは短い整数しかサポートできないことに注意してください。私たちの状況では、SVN リビジョンはすでにこれを上回っていたため、FILEVERSION のリビジョン番号が無効になりました。

于 2009-04-08T18:38:57.147 に答える
1

application.rcファイルには、バージョンブロックがあります。このブロックは、ファイルシステムに表示されるバージョン情報を制御します。

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1

このファイルはプログラムで更新できます。必ずファイルを開いてバイナリとして保存してください。編集がテキストとして行われ、ファイルが破損するという問題がありました。

于 2008-09-20T18:44:38.527 に答える
0

VS_VERSION_INFOエクスプローラーでファイルを右クリックしてプロパティのみを表示すると、変更が反映されます。

キャプションバーに現在のSVNリビジョン番号を表示したい場合は、次のことをお勧めします。

  • スクリプトでバージョン番号を取得し、version.h ファイルを生成します。
#define SVN_VERSION_NO  xxx
  • プロジェクトにはこの version.h が含まれており、その番号を使用してキャプションに表示されます。
于 2008-09-20T19:05:23.720 に答える
0

たぶんこれが役立つかもしれません:バージョニング管理されたビルド

于 2008-12-22T07:27:29.277 に答える