#1
|
|||
|
|||
Increment Build and Revision Number
I would like to be able to increment the build and revision number when building and application. Currently you can only do one or the other automatically and I would still like this capability, but we usually increment both the build and revision number.
|
#2
|
|||
|
|||
Requestion for more info...
What compiler are you using? VC6, or .Net or ?? if .Net, what type of projects? C#, vb, managed c++ or ??
This is an unusual request, can you provide more detail on this unconventional versioning method, so we can assist in finding a solution? Kevin |
#3
|
|||
|
|||
We have a mixture of VB, VC6, VC7 and we are starting to get into C#.
We generally have one main binary file which is generally the main executable for the application that we use to keep track of the version history for the entire product. If we need to compile a change in the main binary file, we will increment both the build (3rd) number and the revision (4th) number which indicates that there was a change in the main binary file and a change in the product as a whole. Basically, the build number in the main binary file is always incremented if the revision number is incremented. If another component or file is changed but the main binary file does not change, we still increment the build number in the main binary file, which indicates that there was a change to the product but we do not increment the revision number so we know that the main binary file did not change (other than the version number). |
#4
|
|||
|
|||
Hmm, you will have to compile this 'main binary file' projectly separately from the rest of the projects anyway, since you are using different increment logic for it compared to the rest of the projects...
And you must already be detecting whether a change was made to a support file... Do you always increment the revision number of the support components? My suggestion is: use a compile step to compile all the projects which increments the revision number on a change (standard fare...). Populate a macro with true when any component (including the 'main binary file' project) was changed changed, false otherwise... Then have another compile step (compiling only the 'main binary file' project) with ForceBuild = true and set to increment the build number (but execute this step conditionally on the macro value (described above). I know this will require compiling the main project twice, but from my perspective, this is the cleanest method of achieving what you are requesting. Kevin |
#5
|
|||
|
|||
We increment the build and revision number of supporting components if there is a change to that component. If a supporting component has not changed then the version is not changed. Only the main binary file differenciates from this becuase it's build number is incremented when any supporting files or even the installation changes even though the main binary may not have changed.
We may just need to prompt for a version for the main binary file, but it would still be nice to be able to increment both the build and revision number for the supporting files. An option similar to FinalBuilder 2 and as seen on the Assembly Info tab in the build VS.Net Solution action would be nice. |
#6
|
|||
|
|||
I'm intrigued....You've mentioned only build components if they have changed. Is there a way to automatically detect this?
To date I've adopted a belt-and-braces approach by always rebuilding every component, even though in many cases a component hasn't actually changed. I'd prefer to build only those that have changed, but which includes cases where shared source file has been modified by some other component. Does VisualBuild offer something to allow you to detect changes to components (based on what it finds in SourceSafe?), or is is something that has to be setup manually? |
#7
|
|||
|
|||
For VB6, the Make VB6 action provides incremental build logic, building only those projects where the source code is older than the compiled executable.
For VC++ (VC6 and VC7), incremental build logic is provided by the Visual Studio (which the Make VC6 and Make VS.NET actions ultimately call to perform a build). For C# and VB.NET, true incremental building is not currently available; see this thread for details: http://www.kinook.com/Forum/showthread.php?threadid=303 |
|
|