我不知道任务,但已经有包含所有项目的属性。只需查看您的典型项目文件,您就会看到它们被添加到哪个集合中。
请注意属性Content、Compile、Folder ... 任何时候将文件添加到项目时,它都会被放入其中一个主要集合中,如下所示:
<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>
然后你可以做这样的事情来将现有属性中的值放入你的属性中(条件属性充当过滤器):
<CreateItem Include="@(Content)" Condition="'%(Extension)' == '.aspx'">
<Output TaskParameter="Include" ItemName="ViewsContent" />
</CreateItem>
或者您可以手动执行(Include 属性使用现有属性 OutputPath,但它指示包含所有文件的路径):
<CreateItem Include="$(OutputPath)\**\*">
<Output TaskParameter="Include" ItemName="OutputFiles" />
</CreateItem>
我在处理自定义构建任务和非常有用的东西时阅读了 MSDN MSBuild 文档中的更多详细信息。继续阅读 CreateItem 任务,您将能够更了解我在此处发布的内容。这真的很容易上手。