2016-07-05 13 views
1

いくつかのJavaScriptファイルを縮小するカスタムMSBuildタスクがあります。私はItemGroupを作成して、どのファイルを縮小するかを定義しました。アイテムグループの除外を複数の行に分割するにはどうすればよいですか?

<ItemGroup> 
    <JS Include="**\*.js" Exclude="**\*.min.js;obj\**\*.*;**\_references.js;[snip]" /> 
</ItemGroup> 

私は(切り取ら部分が長く、将来的に長くなる可能性が)読みやすくするためのいくつかの行にその財産を分割したいので、私はこれを試してみました:

私は私の .csprojファイルに次のように持っています
<ItemGroup> 
    <JS Include="**\*.js" Exclude="**\*.min.js" /> 
    <JS Exclude="obj\**\*.*" /> 
    <JS Exclude="**\_references.js" /> 
    [snip] 
</ItemGroup> 

しかし、それは私にこのビルドエラーを与えた:私は空がそれらのその後のエルに(Include="")を含ん追加したとき

error MSB4066: The attribute "Exclude" in element <JS> is unrecognized. 

同じことが起こりましたements。 (引用符の内側に何かを置くと、エラーが削除されますが、JS varに余分な「ファイルを」含まれていた。)私は、Exclude属性は、同じ要素でInclude属性によって追加された項目に影響を与えthe docs for MSBuild Itemsから学んだ

私もこのように、複数行に自分自身を文字列を一つだけExclude文字列を使用しますが、分割してみました:大丈夫に見えますが、

<ItemGroup> 
    <JS Include="**\*.js" 
     Exclude="**\*.min.js; 
       obj\**\*.*; 
       **\_references.js; 
       [snip]" /> 
</ItemGroup> 

私は、その後のVisual Studioからプロジェクト、行末を保存するときそれはこのようになって、マングルされた:

<ItemGroup> 
    <JS Include="**\*.js" Exclude="**\*.min.js;&#xD;&#xA;     obj\**\*.*;&#xD;&#xA;     **\_references.js;&#xD;&#xA;     [snip]" /> 
</ItemGroup> 

(これはビルドに何かを破るが、複数行に文字列を分割する目的に反していませんでした。)

これらの除外を複数行に分割するにはどうすればよいですか?

答えて

1

this answer about excluding files from Contentがあり、これもまたItemGroupの一部です。だから私はそれを試した:

<ItemGroup> 
    <JS Include="**\*.js" Exclude="**\*.min.js" /> 
    <JS Remove="obj\**\*.*" /> 
    <JS Remove="**\_references.js" /> 
    [snip] 
</ItemGroup> 

それは働いた。 JSには必要なファイルのみが含まれ、csprojファイルは少し読みやすくなっています。

関連する問題