啊,我没想到这么简单...
我创建了两个.rc文件,一个包含共享信息的#defines
SharedVersionDefs.rc
:
// in my app file and product version are the same
还有一个特定的文件(每个模块都会出现不同名称和内容)SpecificVersion.rc
:
#include "SharedVersionDefs.rc"
#ifndef DEBUG
#define VER_DEBUG 0
#else
#define VER_DEBUG VS_FF_DEBUG
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", "Specific file description"
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", "Specific internal name"
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "ProductName", "LCCAMQM"
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
只需要创建这两个文件,将Delphi dproj文件中的版本信息设置为OFF,然后将特定的.rc文件添加到我想要它出现的模块的dproj中,本例中是一个较小的Delphi项目。
program VersionInfoTest;
{$R 'SpecificVersion.res' 'SpecificVersion.rc'}
uses
Vcl.Forms,
uMain in 'uMain.pas' ,
uVerinfo in 'uVerinfo.pas';
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
而且我验证了这个有效。
注意:由于 RSP-13486,您需要将.rc文件添加到.dproj文件中。只需使用IDE将其拖放到其中即可。
有关.rc文件和示例的更多信息,请参阅MSDN。
ँ
。属性对话框正确显示了FileVersion,但由于“StringFileInfo”中的此条目不是必需的,因此我认为它只是默认值。 ProductVersion在属性中显示为ँ
。 - FredS