2012-10-05 17 views
7

App_Web_ ile başlayan ve .dll ile biten adlara sahip dosyalara sahip bir klasör var. Bu parçalar arasında ne olduğunu bilmiyorum ve dosya sayısını bilmiyorum. Bu dosyaları başka bir klasöre taşımak için MSBuild'e ihtiyacım var. Bir grup MSBuild görevini ve joker karakterini kullanarak nasıl taşıyabilirim?

yüzden oluşan bu:

<Move 
    SourceFiles="c:\source\App_Web_*.dll" 
    DestinationFolder="c:\target" 
/> 

ancak hedef aşağıdaki çıktıyı almak çalıştırdığında:

error MSB3680: The source file "c:\source\App_Web_*.dll" does not exist. 

dosyaları kesinlikle vardır.

Neyi yanlış yapıyorum? Dosyaların taşınmasını nasıl sağlayabilirim?

cevap

13

Düzenli ifadeyi doğrudan görev parametrelerinde kullanamazsınız.

<ItemGroup> 
    <FilesToMove Include="c:\source\App_Web_*.dll"/> 
</ItemGroup> 

MSBuild görev uygulamakla geçirmeden önce normal ifade genişleyecektir: taşıyabilir ve göreve içeriğini geçmek dosyaların bir öğe içeren bir liste oluşturmanız gerekir. Yani sonradan bazı hedefte siz Move görevi çağırmak olabilir: Kayıtlı değil görev Move`: Görev Taşı başlatılırken Hata:

<Target Name="Build"> 
    <Move 
     SourceFiles="@(FilesToMove)" 
     DestinationFolder="C:\target" 
    /> 
</Target> 
+0

ben 'hatası olsun – knocte

İlgili konular