首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回显ItemGroup的所有元素

回显ItemGroup的所有元素
EN

Stack Overflow用户
提问于 2014-11-07 12:56:50
回答 2查看 574关注 0票数 1

我有一个MSBuild ItemGroup,我希望能够在“构建后事件”中将其输出。

然而,当我尝试类似于:echo My ItemGroup: @(Foo)的命令时

我知道错误:

错误MSB4164:元数据“ItemGroup:@(Foo)”的值"echo My ItemGroup:@(Foo)“包含一个项列表表达式。默认元数据值不允许项列表表达式。

到目前为止,我还不太擅长ItemGroup。是否有一种方法只需echo Foo包含的文件列表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-10 23:40:03

你会想要这样的:

代码语言:javascript
复制
<ItemGroup>
  <ForcedUsingFilesList Include="c:\path\to\files\*" />
</ItemGroup>
<Target Name="MyTarget">
  <PropertyGroup>
    <MyFiles>
        @(ForcedUsingFilesList->'%(FullPath)')
    </MyFiles>
  </PropertyGroup>
  <Exec>echo $(MyFiles)</Exec>
</Target>
票数 1
EN

Stack Overflow用户

发布于 2014-11-07 13:29:11

试一试%(Foo.Identity)。这将只从列表中打印一项,但会导致包含它的任务(我想是Exec )循环在这些项上。

如果这样做不起作用,请确保直接使用XML文件,而不是IDE,以防它转义或放入我们看不到的其他代码。

(稍后)它可能类似于this post,在这里他们哀叹它并不简单,无论如何都需要直接编辑XML。因此,只需将其更改为一个Exec任务,其中itemlist表达式出现在属性中,而不是元数据定义中。

据说PostBuildEvent更像是向后兼容的东西,最好使用的是AfterBuild目标,它“能够包含任意的MSBuild任务,包括一个或多个Exec任务…。它在IDE…中没有自定义UI将其编辑为XML…“布莱恩·克莱茨勒书中的提示43。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26801753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档