Подтвердить что ты не робот

MSBuild MSBuildCommunityTasks Задача Время

У меня есть проект MSBuild, и я хочу, чтобы текущая дата была добавлена ​​в zip файл, который я создаю.

Я использую MSBuildCommunityTasks.

'' '<'Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"'/>'

На веб-сайте http://msbuildtasks.tigris.org/ Я вижу задачу под названием time. Мне не удалось найти документ о том, как использовать Time.

Любая помощь будет большой.

4b9b3361

Ответ 1

В msbuild 4 вы можете теперь

$([Namespace.Type]::Method(..parameters…))
$([Namespace.Type]::Property)
$([Namespace.Type]::set_Property(value))

поэтому я использую

$([System.DateTime]::Now.ToString(`yyyy.MMdd`))

эти тики вокруг формата являются обратными выражениями '

Ответ 2

<?xml version="1.0" encoding="utf-8"?>

<Project DefaultTargets="Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  <!-- Include MSBuild tasks here -->

  <ItemGroup>     
      <DefaultExclude Include="****" />           
  </ItemGroup>


 <Target Name="Deploy" >

    <Time Format="yyyy-MM-dd">
    <Output TaskParameter="FormattedTime" PropertyName="buildDate" />
    </Time>

    <Message Text="Deploying ...."></Message>   

    <Copy  SourceFiles="@(DeploymentFiles)" DestinationFolder="C:\CCNET\$(buildDate)\bin\" />

</Target>

</Project>

Ответ 3

Маслоу ответ правильный (я не могу комментировать его или я бы); Я бы только добавил, что вы должны быть осторожны, когда неявно вызывается System.DateTime.Parse.

Синтаксическое строковое значение типа $([System.DateTime]::Parse("1970-01-01T00:00:00.0000000Z"), похоже, не имеет вид DateTimeKind.Utc.

Но вы можете использовать функции вложенных свойств, чтобы заставить его работать; (чтобы получить временную метку Unix):

$([System.DateTime]::UtcNow.Subtract($([System.DateTime]::Parse("1970-01-01T00:00:00.0000000Z").ToUniversalTime())).TotalSeconds.ToString("F0"))