我有一個自定義的MSBuild任務來縮小一些JavaScript文件。我創建了一個ItemGroup
來定義我想縮小哪些文件,哪些不應該。我在.csproj
文件中的以下內容:如何將一個ItemGroup的Excludes分成多行?
<ItemGroup>
<JS Include="**\*.js" Exclude="**\*.min.js;obj\**\*.*;**\_references.js;[snip]" />
</ItemGroup>
我想,物業成幾行拆分,以更好的可讀性(該文檔片斷部分很長,可能會在未來變得更長),所以我想這:
<ItemGroup>
<JS Include="**\*.js" Exclude="**\*.min.js" />
<JS Exclude="obj\**\*.*" />
<JS Exclude="**\_references.js" />
[snip]
</ItemGroup>
但是,這給了我這個生成錯誤:
error MSB4066: The attribute "Exclude" in element <JS> is unrecognized.
同樣的,當我添加了一個空的包括(Include=""
)發生於隨後埃爾對此語句。 (把引號裏面的東西去掉了錯誤,但包含在JS VAR額外的「文件」。)
我再從the docs for MSBuild Items的Exclude
屬性隻影響在同一元素的Include
屬性添加的項目的經驗教訓。
我也試過只使用一個Exclude
串,但是分割字符串本身成多行,像這樣:
<ItemGroup>
<JS Include="**\*.js"
Exclude="**\*.min.js;
obj\**\*.*;
**\_references.js;
[snip]" />
</ItemGroup>
這看起來不錯,但是當我隨後所保存的從Visual Studio項目,該行結束相互糾纏,所以它變成了這樣:
<ItemGroup>
<JS Include="**\*.js" Exclude="**\*.min.js;
 obj\**\*.*;
 **\_references.js;
 [snip]" />
</ItemGroup>
(這並沒有打破在構建任何東西,但擊敗分割字符串成多行的目的。)
如何將這些排除分爲多行?