首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任务ItemGroup glob文件可以吗?

问任务ItemGroup glob文件可以吗?
EN

Stack Overflow用户
提问于 2018-02-19 14:13:15
回答 1查看 434关注 0票数 0

我有一个ItemGroup声明如下:

代码语言:javascript
复制
<ItemGroup>
    <MyCustomProjectType Include="..\path_to_my_project">
        <Name>MyProjectName</Name>
    </MyCustomProjectType>
</ItemGroup>

这是一个自定义项目类型,我想对它执行一些特定的操作。

稍后,我有了一个Target (仅举个例子,但它传达了我想要的内容):

代码语言:javascript
复制
<Target Name="MyTarget">
    <ItemGroup>
        <CustomProjectReferenceFiles
            KeepMetadata="Name"
            Include="@(MyCustomProjectType->'%(Identity)\%(Name)\**\*')"
            Exclude="**\*.x;**\*.y"
        />
    </ItemGroup>
    <Message Text="@(CustomProjectReferenceFiles)" />
</Target>

因此,我有一个基于目标的ItemGroup,在这里,我尝试使用转换来创建一个新的包含。这是运行的,但是它看起来Include实际上被设置为:

..\path_to_my_project\MyProjectName\**\*

也就是glob/通配符是而不是扩展的。

我对MSBuild非常陌生,所以我在搜索文档时可能遗漏了一些东西。我在这里想到的一个解决方案就是创建一个新的自定义任务来处理我需要的文件,并在中间目标上设置输出。

我也发现了这样的问题:https://stackoverflow.com/a/3398872/1060314

这就引出了反对CreateItem的观点,这让我不知道替代方案是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-19 16:33:43

最简单的方法是使用中间属性,以便使用实际文本,而不是转义转换的项:

代码语言:javascript
复制
<PropertyGroup>
  <_CustomProjectReferenceFileIncludes>@(MyCustomProjectType->'%(Identity)\%(Name)\**\*')</_CustomProjectReferenceFileIncludes>
</PropertyGroup>
<ItemGroup>
    <CustomProjectReferenceFiles
        KeepMetadata="Name"
        Include="$(_CustomProjectReferenceFileIncludes)"
        Exclude="**\*.x;**\*.y"
    />
</ItemGroup>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48868060

复制
相关文章

相似问题

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