hi, since i needed a versioning scheme other than that of the existing version task, i built my own. i like the way it works, so im suggesting this as an extension to the existing version task. the idea is to have a version-config file that contains not only the counter for the incrementing part of the version number, but also the rules that says how the rest of the version number should look. an example of a version config file i use is as follows: <?xml version="1.0" encoding="UTF-8" ?> <buildversion xmlns="urn:rubicon-it:nant:buildversion"> <major>0</major> <minor>9</minor> <build> <increment currentValue="13" /> </build> <revision> <map property="nant.settings.currentframework"> <entry propertyvalue="net-1.0" versionvalue="10" /> <entry propertyvalue="net-1.1" versionvalue="11" /> <default fail="true" /> </map> <map property="project.config"> <entry propertyvalue="release" versionvalue="1" /> <entry propertyvalue="debug" versionvalue="2" /> <entry propertyvalue="documentation" versionvalue="0" /> <entry propertyvalue="" versionvalue="0" /> <default fail="true" /> </map></revision> </buildversion> this would result in version number of 0.9.14.101 for a release buld for .net framework 1.0, or 0.9.13.101 if i supress incrementing. the advantage is that if i look at the metadata of an assembly that uses one of the target assemblies of this build, i can tell immediately which configuration is referenced. this could be extended to include tags for date/time values. or, more generally, it could be extended to include simple property expansion, and nant could provide properties with current date/time values by default. AFAIU, any of these enhancements would provide the current functionality of the version task and more. my implementation of this task provides properties for the whole version number, each part (minor, major etc) and a version number that does not include configuration-specific values (.noconfig property). in the example above, the latter would be 0.9.13.0, so that target directory trees can be built like 0.9.13.0/net-1.0/debug 0.9.13.0/net-1.0/release 0.9.13.0/net-1.1/debug etc. also, the task allows supressoin of version incrementation. usage example: <buildversion versionfile="build/buildversion.xml" property="buuild.version" increment="false" /> <property name="build.basedir" value="${solution.basedir}/build/${build.version.noconfig}" /> i'd like to know if you think this functionality should be part of the nant version functionality, a alternative one in nant contribs, or neither. once more, i don't find the time to struggle with the details of contribution right now, but i'll provide source code on request (just a few lines of code anyway). stefan
<<winmail.dat>>