gpt4 book ai didi

MSBuild ITaskItem RecursiveDir 元数据消失

转载 作者:行者123 更新时间:2023-12-01 04:20:28 24 4
gpt4 key购买 nike

我有一个自定义 MSBuild 任务,它处理一组文件并返回修改后的子集。基本上,我只是从输入中创建一个新的 ITaskItem 数组,跳过一些项目。

但是,当此结果集返回到 MSBuild 时,RecursiveDir 元数据就会消失!在我的自定义任务的 Execute() 方法结束时它仍然具有正确的值,但是当我尝试在 MSBuild 中使用 RecursiveDir 时,我发现它是空的!这当然是一个很大的问题!

我该怎么办?这是正常的吗?其他元数据(例如文件名和扩展名)仍然存在。身份也指向正确的文件。我不会在我的自定义任务中以任何方式修改元数据。

我已经看到其他 MSBuild 任务库也返回 ITaskItem 数组而无需任何特殊处理。然而没有人遇到过这个问题?奇怪!

我正在使用 MSBuild 3.5。

最佳答案

是的,这是正常的。你对此无能为力。我已经彻底浏览了 MSBuild 源代码,显然,进入自定义任务的项目和返回的项目完全不同。 MSBuild 一开始会创建自己的非常特殊的项目,后来它们变得非常“笨拙”。

我为这种情况找到的解决方案:

  • 创建一个包罗万象的 ItemGroup。
  • 创建一个自定义任务,用您要删除的文件生成一个 ItemGroup。
  • 使用
  • 关于MSBuild ITaskItem RecursiveDir 元数据消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070569/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com