如何在后期构建事件中定义当前系统日期

时间:2014-08-25 11:06:34

标签: msbuild

我想将.dll复制到格式为“test \ Project_yyyy.mm.dd”的目标目录中 yyyy - cuurent year,mm - 当前月份,dd - 当前日期。 当我在post post事件中给出以下命令时,我收到错误。

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

我找不到任何定义当前日期的宏。有人可以帮我这个。

1 个答案:

答案 0 :(得分:4)

您可以使用MSBuild Property Functions来调用某些.Net API。您可以使用System.DateTime.Now获取当前时间,然后获取此年份/月/日作为此对象的属性。

这是执行此操作的代码:

<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>