#1
|
|||
|
|||
Make VS 2022 VERSIONINFO is not incremented
Hi;
I'm using one single "Make VS2022" step to rebuild a solution. I have set "Increment the target version if...", but it's never incremented. The .rc file of the included projects (in the solution) contain either only one VERSIONINFO or several ones for each language we support. The .rc files are checked out from the repositories before the rebuild step starts. Here is the content of one such .rc file: Code:
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 2024,01,10,823 PRODUCTVERSION 6,8,3,0 FILEFLAGSMASK 0x1fL #ifdef _DEBUG FILEFLAGS 0x9L #else FILEFLAGS 0x8L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "Comments", "....." VALUE "CompanyName", "....." #ifdef XR_DBMS_ODBC VALUE "FileDescription", "....." #else VALUE "FileDescription", "....." #endif VALUE "FileVersion", "2024.01.10.823" VALUE "InternalName", "....." VALUE "LegalCopyright", "....." VALUE "LegalTrademarks", "....." VALUE "OriginalFilename", "....." VALUE "PrivateBuild", "4/30/2024" VALUE "ProductName", "....." VALUE "ProductVersion", "6.8.3" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END LANGUAGE LANG_GERMAN, SUBLANG_GERMAN #pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 2024,01,10,823 PRODUCTVERSION 6,8,3,0 FILEFLAGSMASK 0x1fL #ifdef _DEBUG FILEFLAGS 0x9L #else FILEFLAGS 0x8L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040704e4" BEGIN VALUE "Comments", "....." VALUE "CompanyName", "....." #ifdef XR_DBMS_ODBC VALUE "FileDescription", "...." #else VALUE "FileDescription", "....." #endif VALUE "FileVersion", "2024.01.10.823" VALUE "InternalName", "....." VALUE "LegalCopyright", "....." VALUE "LegalTrademarks", "....." VALUE "OriginalFilename", "....." VALUE "PrivateBuild", "10.01.2024" VALUE "ProductName", " ....." VALUE "ProductVersion", "6.8.3" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x407, 1252 END END Thanks in advance Martin |
#2
|
|||
|
|||
We did find an issue with the default target filename for x64 configuration not including the \x64 path in the filename, which would prevent the action from detecting a difference to increment the version. This is fixed in the latest download (VisBuildDotNET.dll 10.9.0.2).
If that doesn't resolve the issue, please provide the information requested at https://www.kinook.com/Forum/showthread.php?t=3044 Thanks. |
#3
|
|||
|
|||
Hello;
I just updated VBP to the latest release but the problem still exists. We will provide the information as requested by the end of the day. |
#4
|
|||
|
|||
Hi;
We found out, that the increment is only done, when we choose 'All' in 'Which solution or project config should be build or updated? ...'. But in our case we are always generating only the Release|x64 configuration. As soon as we explicitely set this configuration, the increment stops working. Why? TIA Martin |
#5
|
|||
|
|||
That was happening in our tests (attached) as well before the fix (when building all configurations, it correctly identified the x86 executable target filenames but not the x64). Please post the project files.
|
#6
|
|||
|
|||
Hello;
Which files do you need in detail? Only the .vcxproj files or the .sln? In addition, do you need the VBP build file too? TIA Martin |
#7
|
|||
|
|||
The .bld file, the .vxcproj file, the .sln (if that is what you're building), and the .rc files in the project.
|
#8
|
|||
|
|||
Find enclosed the requested files.
Currently we build only the Release|x64 configurations. |
#9
|
|||
|
|||
Your projects are referencing
$(DefaultPlatformToolset) which the Make VS action doesn't know about. Code:
<OutDir>..\..\bin\$(DefaultPlatformToolset)\$(Configuration)\</OutDir> What you can do is add a Set Macro step before the Make VS action to set DefaultPlatformToolset = v143 with 'Add to environment variables...' checked, and the Make VS action will do the replacement on the VS variable from the environment variable. If the executable is created in that path, the action will be able to detect the change for incrementing. |
#10
|
|||
|
|||
I will try to change the build script but will you support $(DefaultPlatformToolset) in a future release?
All our libraries are using this macro, because they are built with/for different compiler versions. TIA Martin |
#11
|
|||
|
|||
Supported in the latest download (VisBuildDotNET.dll 10.9.0.3).
|
#12
|
|||
|
|||
Hi;
Sorry for the delayed reply. I tried both - new DLL and the macro workaround - but both of them do not work! What I found out so far is: When compiling any of the 32-bit configuration ithe version number is increased, but as soon as we create a 64-bit configuration, the increment is not performed. As I mentioned before, we exclusively build only 64-bit configurations. Last edited by mgampi; 05-29-2024 at 08:16 AM. |
#13
|
|||
|
|||
Try the latest download (VisBuildDotNET.dll 10.9.0.4).
|
#14
|
|||
|
|||
Hello;
I tested with the release 10.9.0.4 but its still the same. 64-bit configurations are not incrementing the last number of the file version as shown in my previous post. |
#15
|
|||
|
|||
It worked in the test harness I created (attached).
Please provide a buildable project (and all source code files) that demonstrates the issue. Thanks. |
|
|