【问题标题】:How to define current system date in post build event如何在构建后事件中定义当前系统日期
【发布时间】:2014-08-25 11:06:34
【问题描述】:

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

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

我找不到任何定义当前日期的宏。有人可以帮我解决这个问题吗?

【问题讨论】:

标签: msbuild


【解决方案1】:

您可以使用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>

【讨论】:

  • 谢谢,这对我有帮助。我可以调用 Now.ToString("your_format") 以获得更复杂的格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 2013-10-01
相关资源
最近更新 更多