我想创建一个任意字符串/名称的“ItemGroup”以便使用MSBuild转换,例如:
<ItemGroup>
<Categories>First</Categories>
<Categories>Second</Categories>
</ItemGroup>
然后,我希望将这些类别的转换传递到控制台应用程序,例如:
/c @(Categories, ' /c ')
我在引号中说“ItemGroup”的原因是因为我不确定它是否适用于我以这种方式使用ItemGroups - 据我所知,文档中没有任何内容表明ItemGroups < strong>必须是文件,但由于缺少必需的“包含”属性,因此在错误消息中使用上述结果。
答案 0 :(得分:6)
您可以使用Item
中的任意字符串和文件,但必须使用以下语法:
<ItemGroup>
<Categories Include="First"/>
<Categories Include="Second"/>
</ItemGroup>
将Item
与任意字符串一起使用时唯一的区别是某些元数据将毫无意义。 (例如%(Categories.FullPath)
)
然后,您可以使用您的项目执行如下命令:
<Target Name="ExecCommand">
<Exec Command="YourProgram.exe /c @(Categories, ' /c ')"/>
<!-- Using transformation -->
<Exec Command="YourProgram.exe @(Categories -> '/c %(Identity)')"/>
</Target>