2009-03-17 28 views
5

$ (TargetDir) dosyasındaki birkaç dosyayı başka bir klasöre kopyalamaya çalışıyorum (örneğin C: \ BinCache), ancak nedense MSBuild'i şikayet etmemek için alamıyorum.MSBuild'i kullanarak dosyaları başka bir dizine nasıl kopyalarım?

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

yanlış burada ne yapıyorum?

DÜZENLEME: Çözüm, bir CreateItem görevi kullanmaktır. Muhtemelen, Visual Studio 2008 bu kısıtlamayı kaldırır. Sağol Scott!

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

cevap

8

Kaynak Kodlarını Sadece sen CreateItem kullanmanız gerekir bu durumda 2005 tarihinde farkettim

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

gibi

ihtiyacınız şey bir öğe listesini olması gerekir Görev

+0

Visual Studio, " öğesinin altındaki öğesi tanınmayan tanıma" hatasını bildiriyor. Herhangi bir fikir? – Dave

+0

Tamam, bunu araştırırken söz konusu CreateItem görevini gördüm, başka bir bakacağım. – Dave

0

Düzenli bir yapım öncesi veya sonrası olay kullanmanız yeterlidir. VS bunu kutudan çıkarır.

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

Teşekkürler, ancak MSBuild kullanarak bunu yapmalıyım. – Dave

İlgili konular