#1
|
|||
|
|||
VS2005 build step doesn't set file/product version
Hi
I've just been upgrading to v6.2 to work with VS2005.NET. Everything is working as I expect except that the .rc files are not being modified when a rebuild occurs and hence no update is happening to the product and/or file version. I am using the Intel C++ compiler in the release configuration and to support this I had to use "DEVENV" in options. I've tried switching to the debug config as this uses the MS compiler but I get the same result. Checking the revision history of v6.2, a fix seemed to have gone in for something like this (I have converted from VC++ 6). Are .rc files not updated any more? I noticed mention of a .vdproj file in the FAQ ... the conversion didn't generate any of these. Any ideas? Thanks |
#2
|
|||
|
|||
It should update product/file versions in the .rc file if specified. Please ZIP and post or send:
1) The info from Help | About | Install Info 2) The .bld file used to build 3) A build log file 4) The .sln, project, and .rc files (no source code files) Thanks. |
#3
|
|||
|
|||
I can recreate this without converting to the Intel compiler file system. I've created a trivial project that exhibits the behaviour.
If I point the build step at the .rc file itself, the increment occurs without a problem. When I point at the solution, no increment occurs. Am I misunderstanding the behaviour of the version increment? The project attached has two steps ... one points at the solution, the other at the .rc file. Am I correct in thinking that when I run this build, the version number will increment twice (becase the solution build performs a rebuild and the .rc step always increments)? |
#4
|
|||
|
|||
This is fixed in VisBuildDotNET.dll v6.2.0.4, which is in the latest v6.2 download and at http://www.kinook.com/Download/VisBuildDotNET.zip (extract to your VisBuildPro6\System folder).
No, it will only increment once. The Make VS.NET action first builds/rebuilds, then increments and builds again only if the target executable changed. |
#5
|
|||
|
|||
Thanks for the update ...
There seems to be a contradiction in the manual with what you said in the last response regarding the build project I attached: Increment Version: The increment version option will increment the project version only if the project is built (the version is always incremented when specifying an individual RC or assembly file). This ensures that your installs work correctly and copies updated files when comparing the file version. After building or rebuilding a project, the original timestamp of the target executable is compared with the timestamp after building. If it has changed, the custom action increments the version and builds the project again (the second build will just recompile the resources and link). The build project I provided has two build actions ... the solution is built (with the increment option enabled) as the first action (and so the rebuild all would trigger the up-version) and the .rc increment in a second action (and according to the user guide snippet above, it is always incremented). I know that if I just want to increment the version I only need to run the first action ... I just wanted to confirm that if an .rc file is specified that the increment is supposed to occur regardless. |
#6
|
|||
|
|||
Oh, I think I misunderstood your question. Yes, a Make VS.NET step specifying to increment a .rc file will always increment. A subsequent Make VS.NET set to build a project/solution and increment will also increment if the executable changes upon building.
|
#7
|
|||
|
|||
I am using the evaluation version downloaded today which appears as 6.2a in Help->About. One of the key things we want is to be able to automatically increment the version of our mainly unmanaged Visual Studio.NET 2005 C++ projects. I have tried with a simple solution with one project with one rc file that only includes a VERSIONINFO block. The option to increment does not work. If I choose the rc file, it works; if I choose to set the version to a specific number, it works; but if I try to build the .vcproj or .sln, only one build is done, version number is not incremented and the log reads:
Post-processing... c:\vss1\IRIS\BTAX\Utilities\Uppercasefix\UpperCase Fix\UpperCaseFix.vcproj...(no changes) 14/11/2006 12:57:46: Build successfully completed. I have read quite a few other posts that indicate this behaviour. Has this bug been fixed and should it be fixed in the eval version I am using? |
#8
|
|||
|
|||
I have just identified the problem. We use .vsprops files to specify User Macros, that our vcproj files then reference these .vsprops files and use the macros to build up other values, including OutputDirectory.
I changed one project from using the User Macro to a hard coded value and the incrementing started working... ------- from the vcproj file ------- OutputDirectory="$(IRISOutput)\$(ConfigurationName )" [*did not* increment version] changed to OutputDirectory="c:\common\$(ConfigurationName)" [*did* increment version] My question, therefore, is slightly different - Is this a bug and is it something you plan to address? This would be very important to us as several hundred projects in our system use this .vsprops approach. The vsprops file is specified in the vcproj file, in the <Configuration> tag as such: InheritedPropertySheets=".\UpperCaseFixProps.vspro ps" and the vsprops file is a simple XML file which may look something like this: ?xml version="1.0" encoding="Windows-1252"?> <VisualStudioPropertySheet ProjectType="Visual C++" Version="8.00" Name="TaxLevel1Props" > <UserMacro Name="IRISBase" Value="c:\release8.7" /> <UserMacro Name="IRISOutput" Value="$(IRISBase)\common" /> <UserMacro Name="IRISCodeBase" Value="$(IRISBase)\vss1\IRIS" /> <UserMacro Name="IRISLibs" Value="$(IRISBase)\Common" /> </VisualStudioPropertySheet> |
#9
|
|||
|
|||
Support for referencing of user macros in .vsprops files within VC2005 projects is supported in the latest download at http://www.kinook.com/Download/VisBuildProEval.exe
|
|
|