2009-03-17 13 views
5

मैं $ (TargetDir) में किसी अन्य फ़ोल्डर (उदा। सी: \ BinCache) में कई फ़ाइलों की प्रतिलिपि बनाने की कोशिश कर रहा हूं, लेकिन किसी भी कारण से मैं शिकायत रोकने के लिए MSBuild नहीं प्राप्त कर सकता।MSBuild का उपयोग कर फ़ाइलों को दूसरी निर्देशिका में कैसे कॉपी करूं?

<Target Name="AfterBuild"> 
    <Copy SourceFiles="$(TargetDir)\*.*" 
      DestinationFolder="C:\BinCache" /> 
    </Target> 

मैं यहां क्या गलत कर रहा हूं?

संपादित करें: समाधान CreateItem कार्य का उपयोग करना है। संभवतः, विजुअल स्टूडियो 2008 इस प्रतिबंध को हटा देता है। धन्यवाद स्कॉट!

<Target Name="AfterBuild"> 
    <CreateItem Include="$(TargetDir)\*.*"> 
    <Output TaskParameter="Include" ItemName="SourceFiles" /> 
    </CreateItem> 
    <Copy SourceFiles="@(SourceFiles)" DestinationFolder="C:\BinCache" /> 
</Target> 

उत्तर

8

SourceFiles

<Target Name="AfterBuild"> 
    <ItemGroup> 
    <SourceFiles Include="$(TargetDir)\*.*" /> 
    </ItemGroup> 
    <Copy SourceFiles="@(SourceFiles)" DestinationFolder="C:\BinCache" /> 
</Target> 
बस पाया है कि आप 2005 को कर रहे हैं, उस मामले में आप CreateItem का उपयोग करना होगा

की तरह कुछ

आप की आवश्यकता होगी एक आइटम सूची होने की जरूरत है कार्य

+0

विजुअल स्टूडियो त्रुटि की रिपोर्ट करता है, "तत्व तत्व के नीचे तत्व अज्ञात है।" कोई विचार? – Dave

+0

ठीक है, इस पर शोध करते समय मैंने CreateItem कार्य का उल्लेख किया, मैं एक और रूप ले जाऊंगा। – Dave

0

बस नियमित प्री-या पोस्ट-बिल्ड ईवेंट का उपयोग करें। वीएस बॉक्स के बाहर इसका समर्थन करता है।

xcopy "@(TargetDir)*.dll" "\yourdir" /i /f /s /v /y 
+0

धन्यवाद, लेकिन मुझे MSBuild का उपयोग करके ऐसा करने की आवश्यकता है। – Dave

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