MSBuild MSBuildCommunityTasks Задача Время
У меня есть проект MSBuild, и я хочу, чтобы текущая дата была добавлена в zip файл, который я создаю.
Я использую MSBuildCommunityTasks.
''
'<'Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"'/>'
На веб-сайте http://msbuildtasks.tigris.org/ Я вижу задачу под названием time. Мне не удалось найти документ о том, как использовать Time.
Любая помощь будет большой.
Ответы
Ответ 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"))