我不知道任務,但已經有屬性可以保存所有項目。只要看看你的典型項目文件,你會看到他們被添加到哪個集合。
注意屬性內容,編譯,文件夾 ...任何時候你將文件添加到一個項目,它被放置在主要收藏品之一是這樣的:
<ItemGroup>
<Content Include="Default.aspx" />
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="Default.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>Default.aspx</DependentUpon>
</Compile>
<Compile Include="Default.aspx.designer.cs">
<DependentUpon>Default.aspx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
</ItemGroup>
然後你可以做這樣的事情,將現有屬性的值放入屬性中(Condition屬性起到過濾器的作用):
<CreateItem Include="@(Content)" Condition="'%(Extension)' == '.aspx'">
<Output TaskParameter="Include" ItemName="ViewsContent" />
</CreateItem>
或者你也可以手動執行它(包括屬性使用現有屬性OutputPath,但它表明inclues所有文件的路徑):
<CreateItem Include="$(OutputPath)\**\*">
<Output TaskParameter="Include" ItemName="OutputFiles" />
</CreateItem>
有在MSDN MSBuild的文檔中更多的細節,我讀的時候我是使用自定義構建任務和非常有用的東西。閱讀CreateItem任務後,您可以從我在此處發佈的內容中瞭解更多信息。接下來很容易。