I also had a few problems with some special cases, and I didn’t want to set the versions for every project.
Now we create our own verion resource,
compile the RC to RES and include this into alle our compilates.
The version information in the projects are disabled.
One resource for many DLL and BPL.
The information also comes from an INI and can be edited via a dialog in FinalBuilder.
“Create Text File” for the RC with replacing the variables
and several “Embarcadero Resource Compiler” to create different versions for BPL, DLL, EXE and Service-EXE.
In the same way, different resources are generated with the manifest file, with and without administrator, as well as for the service application.
#define VS_FFI_FILEFLAGSMASK 0x3FL
#define VS_FF_SPECIALBUILD 0x20L
#define VS_FF_PRERELEASE 0x02L
#define VOS__WINDOWS32 0x4L
#define VFT_APP 0x1L
#define VFT_DLL 0x2L
1 VERSIONINFO
FILEVERSION %VersionRC%
PRODUCTVERSION %VersionRC%
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS %Flags%
FILEOS VOS__WINDOWS32
#ifdef _DLL
FILETYPE VFT_DLL
#else
FILETYPE VFT_APP
#endif
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "Firma GmbH\0"
VALUE "LegalCopyright", "Firma GmbH\0"
VALUE "LegalTrademarks", "\0"
VALUE "ProductName", "My Application\0"
VALUE "ProductVersion", "%VersionNum%\0"
VALUE "FileDescription", "My Application .....\0"
VALUE "FileVersion", "%VersionNum%\0"
VALUE "InternalName", "MYAPP\0"
#ifdef _DLL
VALUE "OriginalFilename", "\0"
#else
#ifdef _SRV
VALUE "OriginalFilename", "Server.exe\0"
#else
VALUE "OriginalFilename", "Application.exe\0"
#endif
#endif
VALUE "SpecialBuild", "%GitBranch%\0"
VALUE "Comments", "%GitVersion%\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 1252
END
END