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

Sri*_*iks 3 msbuild

我想将.dlls复制到格式为“ test \ Project_yyyy.mm.dd”的目标目录中,其中yyyy-当前年份,mm-当前月份,dd-当前日期。在发布后事件中输入以下命令时,出现错误。

xcopy /Y "$(TargetDir)*.*" test\Project_$(Year:yyyy).$(Month).$(DayOfMonth)
Run Code Online (Sandbox Code Playgroud)

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

sev*_*tov 7

您可以使用MSBuild属性函数来调用某些.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>
Run Code Online (Sandbox Code Playgroud)