echo ItemGroup的所有元素
echo All Elements of an ItemGroup
我有一个MSBuild ItemGroup
,我希望能够在"后生成事件"中echo
。
然而,当我尝试像echo My ItemGroup: @(Foo)
这样的命令时
我得到错误:
错误MSB4164:元数据"Command"的值"echo My ItemGroup:@(Foo)"包含项列表表达式。默认元数据值上不允许使用项列表表达式。
到目前为止,我还不太擅长ItemGroup
。有没有办法我只echo
Foo
包含的文件列表?
请改用%(Foo.Identity)
。这将只打印列表中的一个项目,但会导致包含它的Task(我想是Exec
)在这些项目上循环。
如果这不起作用,请确保直接使用XML文件而不是IDE,以防它转义或放入我们看不到的其他代码。
(稍后)可能就像这篇文章一样,他们哀叹它并不简单,无论如何都需要直接编辑XML。因此,只需将其更改为Exec
任务,其中项列表表达式显示在属性中,而不是元数据定义中。
有人写道,PostBuildEvent
更像是一个向后兼容的东西,最好使用的是AfterBuild
目标,它"能够包含任意MSBuild任务,包括一个或多个Exec
任务……它在IDE中没有自定义UI……将其编辑为XML……"Brian Kretzler书中的提示43。
您会想要类似以下内容:
<ItemGroup>
<ForcedUsingFilesList Include="c:pathtofiles*" />
</ItemGroup>
<Target Name="MyTarget">
<PropertyGroup>
<MyFiles>
@(ForcedUsingFilesList->'%(FullPath)')
</MyFiles>
</PropertyGroup>
<Exec>echo $(MyFiles)</Exec>
</Target>
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 从控制台中删除最后打印的元素
- echo ItemGroup的所有元素