2009-05-18 16 views
16

私はMSBuildプロジェクトを持っています。作成しているzipファイルに現在の日付を追加します。MSBuild MSBuildCommunityTasksタスク時間

私はMSBuildCommunityTasksを使用しています。ウェブサイトhttp://msbuildtasks.tigris.org/オン

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

私は時間と呼ばれるタスクを見ることができます。私は時間を使用する方法についての文書を見つけることができませんでした。

助けがあれば助かります。

+4

のMSBuildタスクは、あなたがそれをインストールしたディレクトリにあるCHMファイルを含め、私がMSBuildCommunityTasksを使用する必要がありますたびに、私は常に開いているファイルを保持:このように(Unixタイムスタンプを取得します)。 – Min

答えて

40

In msbuild 4 you can now

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

ので、私は

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

を使用していますフォーマット周りの人々ティックはバッククォートされていない'

+3

詳細日付/時刻tostringのフォーマットはこちら:http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm –

21
<?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> 
1

マズローの答えは(私がコメントすることはできませんが正しいですそれまたは私は)。私は暗黙のうちにSystem.DateTime.Parseを呼び出すときに注意する必要があることを追加するだけです。

$([System.DateTime]::Parse("1970-01-01T00:00:00.0000000Z")のような解析された文字列の値は、種類がDateTimeKind.Utcで終わるようには見えません。

しかし、nested property functionsを使用すると動作させることができます。 。

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

関連する問題