2009-05-18 12 views
16

मेरे पास एक एमएसबिल्ड परियोजना है और मैं चाहता हूं कि वर्तमान दिनांक एक ज़िप फ़ाइल में जोड़ा जा सके जो मैं बना रहा हूं।एमएसबिल्ड MSBuildCommunityTasks कार्य समय

मैं MSBuildCommunityTasks का उपयोग कर रहा हूं।

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

वेबसाइट http://msbuildtasks.tigris.org/ मैं समय कहा जाता है एक कार्य देख सकते हैं पर। मैं समय का उपयोग करने के तरीके पर डॉक्टर नहीं ढूंढ पाया।

कोई भी मदद महान होगी।

+4

MSBuild कार्य निर्देशिका आप में इसे स्थापित करने में एक CHM फ़ाइल शामिल मैं हमेशा उस फ़ाइल को खुला रखने के जब भी मैं MSBuildCommunityTasks उपयोग करना होगा।। – 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

अधिक दिनांक/समय टॉस्ट्रिंग प्रारूप यहां: 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("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"))

संबंधित मुद्दे