ビルド スクリプトの一部として、自分の Delphi プロジェクトのバージョンを別のプロジェクト (Delphi ではない) と同じに設定する必要があります。IDE を介さずにバージョン番号を制御する方法はありますか? たとえば、コンパイラのコマンド ライン パラメータなどです。ありがとう
質問する
4844 次
2 に答える
15
のような行を含めます
{$R 'version.res'}
あなたのプロジェクトで。バージョン情報を含む version.rc ファイルを作成します。古いバージョンの Delphi では、brcc32 を使用して自分でリソースをビルドする必要があります。新しい Delphi バージョンでは、使用できます
{$R 'version.res' 'version.rc'}
IDE が自動的にビルドするようにします。
最も単純な version.rc は次のようになります。
1 VERSIONINFO
FILEVERSION 9999, 9999, 99, 18048
PRODUCTVERSION 9999, 9999, 99, 18048
FILEOS 0x00000004L // comment: VOS_WINDOWS32
FILETYPE VFT_APP
{
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x409, 0x4E4 // comment: 0x4E4 = 1252
}
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Company Name\0"
VALUE "FileVersion", "9999.9999.99.18048\0"
VALUE "LegalCopyright", "Copyright \0"
VALUE "ProductName", "Product Name\0"
VALUE "ProductVersion", "9999.9999.99.18048\0"
VALUE "Homepage", "http://www.mydomain.com\0"
}
}
}
詳細については、MSDN のVERSIONINFO構造体を参照してください。
于 2013-01-09T19:10:49.600 に答える
2
マルジャンは上で優れた答えを出していますが、私の答えは答えをもう少し進めています。次の RC ファイルを検討してください。
VS_VERSION_INFO VERSIONINFO
#include "..\Ver_Num_Application.txt"
#define APPLICATION_NAME "My amazing project\0"
#define VER_NUM_ARTWORKS 4
#include "..\Libraries\Paslib32\Ver_Num_Library.txt"
#define COMPANY_NAME "My company\0"
FILEVERSION VER_NUM_ARTWORKS, VER_NUM_LIBRARY, VER_NUM_APPLICATION, 1000
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x9L
#else
FILEFLAGS 0x8L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", APPLICATION_NAME
VALUE "LegalCopyright", "Copyright (C) "COMPANY_NAME
VALUE "ProductName", APPLICATION_NAME
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
いくつかの #INCLUDE ステートメントを使用する利点は、RC ファイルをそのままにして、次のような *.txt インクルード ファイルを単純に変更 (または自動生成) できることです。
Ver_Num_Application.txt:
#define VER_NUM_APPLICATION 6
Ver_Num_Library.txt:
#define VER_NUM_LIBRARY 156
ビルドを実行する前に *.res ファイルを削除して、リンカーが (変更された可能性がある) バージョン番号からファイルを再生成するようにする必要があることに注意してください。
于 2013-01-10T15:02:55.897 に答える