CreateItem 任务
更新:2007 年 11 月
使用输入项填充项集合。这可以将项从一个列表复制到另一个列表。
属性
下表描述了 CreateItem 任务的参数。
参数 |
说明 |
---|---|
AdditionalMetadata |
可选的 String 参数。 指定要附加到输出项的其他元数据。按照下面的语法为该项指定元数据名称和值: MetadataName=MetadataValue 多个元数据名称/值对之间应使用分号分隔。如果名称或值包含分号或其他任何特殊字符,必须对其进行转义。有关更多信息,请参见 如何:转义 MSBuild 中的特殊字符。 |
Exclude |
可选的 ITaskItem[] 参数。 指定要从输出项集合中排除的项。此参数可以包含通配符规范。有关更多信息,请参见 MSBuild 项 和 如何:在一个目录中生成所有文件,只有一个文件除外。 |
Include |
可选的 ITaskItem[] 输出参数。 指定要包含在输出项集合中的项。此参数可以包含通配符规范。 |
示例
下面的代码示例基于项集合 MySourceItems 新建一个名为 MySourceItemsWithMetadata 的项集合。CreateItem 任务使用 MySourceItems 项集合中 MyAddMetadata 值为 true 的项来填充新的项集合。然后,它会向新集合中的每个项再添加一个名为 MyMetadata、值为 Hello 的元数据项。
该任务执行后,MySourceItemsWithMetadata 项集合将包含 file1.resx 和 file3.resx 项,这两项均具有与 MyAddMetadata 和 MyMetadata 对应的元数据项。MySourceItems 项集合保持不变。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceItems Include="file1.resx;file3.resx">
<MyAddMetadata>true</MyAddMetadata>
</MySourceItems>
<MySourceItems Include="file2.resx">
<MyAddMetadata>false</MyAddMetadata>
</MySourceItems>
</ItemGroup>
<PropertyGroup>
<MyValue>Hello</MyValue>
</PropertyGroup>
<Target Name="NewItems">
<CreateItem
Include="@(MySourceItems)"
Condition="'%(MyAddMetadata)'=='true'"
AdditionalMetadata="MyMetadata=$(MyValue)">
<Output
TaskParameter="Include"
ItemName="MySourceItemsWithMetadata"/>
</CreateItem>
</Target>
</Project>
下表说明了任务执行后输出项的值。项的元数据显示在该项后面的括号中。
项集合 |
内容 |
---|---|
MySourceItemsWithMetadata |
file1.resx (MyMetadata="Hello") file3.resx (MyMetadata="Hello") |