2009-05-18 24 views
16

Tôi có dự án MSBuild và tôi muốn ngày hiện tại được thêm vào tệp zip mà tôi đang tạo.MSBuild MSBuildCommunityTasks Thời gian tác vụ

Tôi đang sử dụng MSBuildCommunityTasks.

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

Trên trang web http://msbuildtasks.tigris.org/ tôi có thể thấy một công việc được gọi là thời gian. Tôi đã không thể tìm thấy tài liệu về cách sử dụng Thời gian.

Mọi trợ giúp đều tuyệt vời.

+4

Các MSBuild nhiệm vụ bao gồm một file CHM trong thư mục bạn cài đặt nó trong Bất cứ khi nào tôi phải sử dụng MSBuildCommunityTasks tôi luôn luôn giữ tập tin mà mở.. – Min

Trả lời

40

In msbuild 4 you can now

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

vì vậy tôi đang sử dụng

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

những ve xung quanh định dạng là backticks không '

+3

Các định dạng chuỗi ngày/giờ khác tại đây: 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

câu trả lời của Maslow là đúng (tôi không thể bình luận gì về nó hoặc tôi sẽ); Tôi sẽ chỉ thêm vào nó mà bạn phải cẩn thận khi ngầm gọi System.DateTime.Parse.

Giá trị chuỗi được phân tích cú pháp như $([System.DateTime]::Parse("1970-01-01T00:00:00.0000000Z") dường như không kết thúc với Loại số DateTimeKind.Utc.

Nhưng bạn có thể sử dụng nested property functions để làm cho nó hoạt động; như thế này (để có được những dấu thời gian Unix):

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

Các vấn đề liên quan