6

I want to copy .dlls into a target directory of format "test\Project_yyyy.mm.dd" Where yyyy - cuurent year, mm - current month, dd - current date. When I give the below command in my post build event, I am getting an error.

xcopy /Y "$(TargetDir)*.*" test\Project_$(Year:yyyy).$(Month).$(DayOfMonth)

I could not find any macro which define current date. Can someone please help me on this.

leppie
  • 115,091
  • 17
  • 196
  • 297
Sriks
  • 1,669
  • 6
  • 26
  • 40
  • I have reffered to http://msdn.microsoft.com/en-us/library/669zx6zc.aspx where in I got some useful information. But I want this to be working even if I deploy it in a build server – Sriks Aug 25 '14 at 11:53

1 Answers1

14

You can use MSBuild Property Functions to call some of the .Net API. You can use System.DateTime.Now to obtain current time, then fetch year/month/day as properties of this object.

Here is a code that does this:

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <CurrentYear>$([System.DateTime]::Now.Year)</CurrentYear>
    <CurrentMonth>$([System.DateTime]::Now.Month)</CurrentMonth>
    <CurrentDay>$([System.DateTime]::Now.Day)</CurrentDay>
  </PropertyGroup>

  <Target Name="Print">
    <Message Text="Year: $(CurrentYear)" />
    <Message Text="Month: $(CurrentMonth)" />
    <Message Text="Day: $(CurrentDay)" />
  </Target>
</Project>
seva titov
  • 11,720
  • 2
  • 35
  • 54