How to change an executable's properties? (Windows)
If you are using C/Win32 you can add something like this to your project encapsulated in a *.rc (resource) file:
VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,2 PRODUCTVERSION 0,0,0,2 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0L{ BLOCK "StringFileInfo" { BLOCK "040904b0" { VALUE "Comments", "comment\0" VALUE "CompanyName", "comment\0" VALUE "FileDescription", "base file\0" VALUE "FileVersion", "0.0.0.2 TP\0" VALUE "InternalName", "testTP\0" VALUE "LegalCopyright", "none\0" VALUE "OriginalFilename", "test.exe\0" VALUE "ProductName", "test\0" VALUE "ProductVersion", "0.0.0.2 TP\0" } } BLOCK "VarFileInfo" { VALUE "Translation", 0x409, 1200 }}
If you want to change the FileDescription or any other version resource string on a compiled executable, rcedit (a small open-source tool) does it pretty easily:
$ rcedit MyApp.exe --set-version-string FileDescription "My Awesome App"
Very easy if you are using visual studio:
- Right click on the 'Resource Files' folder in the project
- Click 'Add' then 'Resource'
- Choose 'Version' from the pop-up dialog
You can then double click on the file to open it in Visual Studio, and you get a handy editor to change the values.
Your values are then automatically linked in to the EXE.