PDA

View Full Version : Weird file versions, even though .rc file appears right


mbrock
07-31-2012, 06:21 PM
We have scripts that build about 100 binaries daily from various languages (VB6, C++, C#), all versioned identically. For some reason, there are 3 newly added binaries (2 C++ exe and 1 C++ dll) that are not adhering to the versioning rules all of our other binaries are.

I have checked the rc files for these 3 binaries, and they all appear fine to me:

VS_VERSION_INFO VERSIONINFO
FILEVERSION 10,1,0,1266BUILD_NUM
PRODUCTVERSION 10,1,0,1266BUILD_NUM
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e3"
BEGIN
VALUE "FileVersion", "10.1.0.1266"

That's the version I want my files to have. But, my 2 exe files have 10.1.0.12660, and the dll is even more odd at 10.1.0.61077. Also, these incorrect values are changing with every build, so there isn't something hard-coded out there that it overwriting our dynamic file versions with something static every time (i.e. 10.1.0.61077 was not the dll version for yesterday's build).

I had a similar issue which I reported in http://www.kinook.com/Forum/showthread.php?t=2099. At that time, our developer combined the 2 rc files into one, and that solved our issue. In the current issue, the 3 rc files have an include statement for another rc2 file, but the rc2 file doesn't have a VS_VERSION_INFO VERSIONINFO section. It only has entries for the STRINGTABLE. Even so, I commented out the #include in the original rc files and compiled, and the version on the binaries is still weird, again, even though it looks right in the rc file.

We are running version 7.5a of VBP.

kinook
07-31-2012, 06:48 PM
It sounds like a Visual Studio issue, since that's what actually compiles VS projects. You can check the Log command-line option on the Advanced tab of the action, rebuild the step, then copy/paste that into a Command Prompt to reproduce outside of Visual Build.

mbrock
08-02-2012, 11:29 AM
Yep, this was our bad. As expected, the same file versions were generated when compiling via msbuild outside of VBP.

I'm not sure how I missed it the first time, but I looked at the rc files again, and they were defining variables that were being appended to the version.