TeamCity + MSBuild: Tagging a deployment with a VCS build number

environment-variables, msbuild, teamcity

Solution

%env.XYZ% is TeamCity's method of referring to the environment variables, if you want to use them in ITS settings anywhere.

In a batch file or via msbuild, you only want the XYZ part.

echo %BUILD_VCS_NUMBER% > \\path\to\version.txt

Problem

I am using TeamCity 4.5.1 to build and deploy an ASP.Net application to development. This is working perfectly so far, however, my manager has asked that I tag the folder with the specific SVN Revision from which the source was compiled. I am using an MSBuild script to do the build and deployment, however, I am unable to successfully retrieve the build number. Here is the MSBuild command I'm using (sanitized): ``` <Exec Command="&gt;\\server08\D$\Websites\MYPROJECT\version.txt echo %env.BUILD_VCS_NUMBER%,%env.BUILD_VCS_NUMBER.1%,%system.build.vcs.number%,%system.build.vcs.number.1%,%system.build.number.format%,%system.build.number.format.1%,%system.build.vcs.number.MYPROJECT_Web_Root%,%env.TEAMCITY_VCS_NUMBER_MYPROJECT_Web_Root%" /> ``` Version.txt turns up like this: ``` ,,,,,,,, ``` Aka, empty. What am I doing wrong? Any better way to do this?

Original source