MSBuild MSBuildCommunityTasks Время выполнения

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

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

<!-- Import the CommunityTasks Helpper -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />

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


person Eric Brown - Cal    schedule 18.05.2009    source источник
comment
Задачи MSBuild включали файл CHM в каталог, в который вы его установили. Когда мне нужно использовать MSBuildCommunityTasks, я всегда оставляю этот файл открытым.   -  person Min    schedule 18.05.2009


Ответы (2)


В msbuild 4 теперь можно

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

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

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

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

person Maslow    schedule 11.07.2011
comment
Дополнительные форматы строки даты / времени можно найти здесь: geekzilla.co.uk/ View00FF7904-B510-468C-A2C8-F859AA20581F.htm - person riffrazor; 12.12.2011

Ответ Маслоу правильный (я не могу его комментировать, а то и стал бы); Я бы только добавил к этому, что вы должны быть осторожны при неявном вызове 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"))

person Dave    schedule 12.10.2016