In order to get the file version I wrote this:
#define FileVersion GetVersionNumbersString("...\Client.exe")
[Setup]
VersionInfoVersion={#FileVersion}
File version is a string in "0.0.0.0" format. In my case it's 5.0.6.5 and it does not change.
Where does GetVersionNumbersString take that data from? How is 5.0.6.5 formed?
The version is taken from the version info of your .exe file. If you check the "Details" tab of the executable properties, the
GetVersionNumbersStringcorresponds to the "File version" entry (5.17.9.10905in this case):