From: Anders <and...@us...> - 2011-07-28 21:57:38
|
I'm adding a VIFileVersion command because of http://stackoverflow.com/questions/6859153/why-does-viproductversion-argument-override-value-of-productversion-key Having ProductVersion != FileVersion in VS_FIXEDFILEINFO is probably pretty rare but the workaround you need to use without it is horrible. My initial rewrite of the docs looks like http://jsbin.com/icewuh/2/edit#preview The reference to VS_FIXEDFILEINFO might be a bit obscure but it does reflect what the attribute actually does (The FileVersion string does not have to match the FileVersion in VS_FIXEDFILEINFO and the WinXP version properties tab will display both (VS_FIXEDFILEINFO at the top and the string in the list of strings)). The old docs had a major docbug since it is the file version and not the product version that is displayed at the top of the version tab dialog! Another quirk is that makensis does not seem to echo any information when the VIProductVersion command is used and it does not validate the input in script.cpp like most commands, it does it during CEXEBuild::write_output. Why? I don't know but I did not want to change it since it could possibly affect scripts that use !delfile to do cleanup etc since the invalid input error is delayed. VIFileVersion does not echo any information either but it does validate the input right away but that is ok since the command is new. Should I keep the old delayed VIProductVersion input validation for compatibility or just fail in script.cpp when the command is executed with a bad param? Also, if the script does not contain a VIFileVersion command it falls back to the old behavior with FileVersion == ProductVersion. What do you guys think? |