Git-Last-commit--version--as-MSBuild-Task is a project mainly written in C#, it's free.
See www.aspcode.net for more info on this
Simple however: <UsingTask AssemblyFile="code oolsMSBuildTasksGitVersion.dll" TaskName="GitVersion"/>
Which you can then use like
<AssemblyInfo CodeLanguage="CS" OutputFile="ReportUpdaterPropertiesAssemblyInfo.cs" AssemblyTitle="ReportUpdater Last commit:$(LastCommit)" AssemblyDescription="ReportUpdater" AssemblyCompany="Systementor AB" AssemblyProduct="ReportUpdater" AssemblyCopyright="Copyright Systementor AB 2010" ComVisible="false" CLSCompliant="false" AssemblyVersion="$(versioningMajor).$(versioningMinor).$(versioningBuild).$(versioningRevision)" AssemblyFileVersion="$(versioningMajor).$(versioningMinor).$(versioningBuild).$(versioningRevision)" />