2012-03-23 23 views
9

Tüm javascript dosyalarını bir proje içinde birleştirme işlemi sırasında birleştirmeye çalışıyorum, ancak bu sadece benim için çalışmıyor. İşte ne var: MSBuild "Dosya" parametresi için geçersiz değer var diyorsun ReadLinesFromFile hattında bir hata atıyorMSBuild dosyaları birleştirin

<Target Name="CombineJS"> 
    <CreateItem Include=".\**\*.js"> 
    <Output TaskParameter="Include" ItemName="jsFilesToCombine" /> 
    </CreateItem> 

    <ReadLinesFromFile File="@(jsFilesToCombine)"> 
    <Output TaskParameter="Lines" ItemName="jsLines" /> 
    </ReadLinesFromFile> 

    <WriteLinesToFile File="all.js" Lines="@(jsLines)" Overwrite="true" /> 
</Target> 

. (Birleştirmek için sadece bir dosya var Hata yok)

Yani, iki soru: Ben yanlış yapıyorum

  1. ?
  2. Dosyaları bir MSBuild görevinde birleştirmenin daha iyi bir yolu var mı? Bu soruyu soruyorum çünkü şu anki sürecimin tüm sekmeleri ve boş satırları kaldırdığını biliyorum, ki bu benim için büyük bir anlaşma değil, ama yine de sinir bozucu.

cevap

13

değiştirme hattı 6:

<ReadLinesFromFile File="%(jsFilesToCombine.FullPath)"> 

giriş esas dizgi noktalı ayrılmış listesi olan ItemGroup olduğunda @ operatör kullanılır.

% işleci, ItemGroup'ları dizelere (özellikler) genişletmek içindir.

2

ReadLinesFromFileTask dosyaları okumak için kullandığınız File mülkiyet (MSDN) için girdi olarak tek bir dosya alır. Aynı anda birden fazla dosyadan satır okumak için bu görevi kullanamazsınız. Ancak, her bir dosya için görevi birkaç kez çalıştırmak için batching'u kullanabilirsiniz. için

+0

Dosyaya +1 toplu yükleme ve ekleme yanıtıdır. –