2012-03-23 4 views
9

ビルドプロセス中にプロジェクト内のすべてのjavascriptファイルを結合しようとしていますが、それは私のためには機能しません。ここで私が持っているものだ:MSBuildのは、「ファイル」パラメータに無効な値がありますと言ってReadLinesFromFile行にエラーを投げているMSBuildはファイルを結合します

<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> 

。 (結合する唯一つのファイルがありますエラーなし)

ので、二つの質問:私が間違っているのは何

  1. MSBuildタスク内でファイルを結合する良い方法はありますか?私は現在のプロセスがすべてのタブと空白行を削除することを知っているので、私はこの質問をします。これは、私にとってはそれほど大きな問題ではありませんが、まだまだ厄介なものです。

答えて

13

変更ライン6:

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

入力は、本質的に、文字列のセミコロンで区切られたリストであるItemGroupとき@オペレータが使用されます。

%演算子は、ItemGroupsを文字列(プロパティ)に展開するための演算子です。

2

ReadLinesFromFileTaskファイルを読むために使用しているがFileプロパティ(MSDN)への入力として1つのファイルを取ります。このタスクを使用して、一度に複数のファイルから行を読み取ることはできません。ただし、batchingを使用して、ファイルごとに複数回タスクを実行することができます。

+0

ファイルに対するバッチ処理とファイルの追加が答えです。 –

関連する問題