I've installed the AssemblyInfoTask and I am able to automatically update my assembly versions using the major.minor.YYMMDD.revision versioning scheme. This is great - exactly what we want.
I also understand that my assemblyinfo.cs file needs to be read/write for this to happen, and if I am executing my build from a command line (we use nmake), this is no problem. I just have the makefile check out the file from source control before executing MSBuild.
However, many developers will be building this same project (over and over again) every day in debug mode from the IDE, and we don't care to have the assembly updated.
I've looked all over, but I haven't found any examples of how to conditionally execute the AssemblyInfoTask based on configuration. For that matter, I might even consider another condition, like whether or not the build was executed from the IDE.

How to update AssemblyInfo only on Release builds?
dotDavid
>assembly versions using the major.minor.YYMMDD.revision versioning scheme. This is great - exactly what we want.
This is not to answer your question, just a comment on your versioning scheme. Keep in mind that the maximum value for each part of the version number is 65535, so that scheme will only work til the end of this year. 1.0.61231 is valid, but 1.0.70101 is not. So you may want to reconsider to avoid any nasty Y2K7 issues a year from now.
Dwarvend
Tony Bass
Huh! That's very interesting, thanks for pointing that out. I wonder what we are going to do internally, since our build numbers for Visual Studio use exactly that pattern. We too will have a problem when we get to 2007.
Note that there's nothing explicit in the code for the task that says the number has to be formatted that way. You can specify any datetime format using the appropriate property (it'll be documented in the help file, the actual property name escapes me at the moment).
As for how to make it only update on release builds, or alternatively only make it run on the build machine, you'll need to edit the Microsoft.VersionNumber.targets file. On the target that runs the assemblyinfotask add a condition like this:
Condition="'$(Configuration)' == 'release'"
or
Condition="'$(RunningOnBuildServer)' == 'true'"
Then you can use /p:Configuration=release or /p:RunningOnBuildServer=true on the command line when you kick off the build to have the version number update.
Neil