How do I set the version information for an existing .exe, .dll? How do I set the version information for an existing .exe, .dll? windows windows

How do I set the version information for an existing .exe, .dll?


While it's not a batch process, Visual Studio can also add/edit file resources.

Just use File->Open->File on the .EXE or .DLL. This is handy for fixing version information post-build, or adding it to files that don't have these resources to begin with.


Unlike many of the other answers, this solution uses completely free software.

Firstly, create a file called Resources.rc like this:

VS_VERSION_INFO VERSIONINFO    FILEVERSION    1,0,0,0    PRODUCTVERSION 1,0,0,0{    BLOCK "StringFileInfo"    {        BLOCK "040904b0"        {            VALUE "CompanyName",        "ACME Inc.\0"            VALUE "FileDescription",    "MyProg\0"            VALUE "FileVersion",        "1.0.0.0\0"            VALUE "LegalCopyright",     "© 2013 ACME Inc. All Rights Reserved\0"            VALUE "OriginalFilename",   "MyProg.exe\0"            VALUE "ProductName",        "My Program\0"            VALUE "ProductVersion",     "1.0.0.0\0"        }    }    BLOCK "VarFileInfo"    {        VALUE "Translation", 0x409, 1200    }}

Next, use GoRC to compile it to a .res file using:

GoRC /fo Resources.res Resources.rc

(see my comment below for a mirror of GoRC.exe)

Then use Resource Hacker in CLI mode to add it to an existing .exe:

ResHacker -add MyProg.exe, MyProg.exe, Resources.res,,,

That's it!


Or you could check out the freeware StampVer for Win32 exe/dll files.
It will only change the file and product versions though if they have a version resource already. It cannot add a version resource if one doesn’t exist.