MSBuild ITaskItem RecursiveDir元数据消失
我有一个自定义MSBuild任务,它处理一组文件并返回该文件的修改子集。基本上,我只是从输入中创建一个新的ITaskItem数组,跳过一些项 但是,当此结果集返回到MSBuild时,RecursiveDir元数据将消失!它在自定义任务的Execute()方法的末尾仍然具有正确的值,但是当我尝试在MSBuild中使用RecursiveDir时,我发现它是空的!当然,这是一个相当大的问题 我该怎么办?这正常吗?其他元数据(如文件名和扩展名)仍然存在。标识还指向正确的文件。我不会在自定义任务中以任何方式修改元数据 我看到其他MSBuild任务库也返回ITaskItem数组,而无需任何特殊处理。但没有人遇到过这个问题?奇怪MSBuild ITaskItem RecursiveDir元数据消失,msbuild,metadata,msbuild-task,filepath,itaskitem,Msbuild,Metadata,Msbuild Task,Filepath,Itaskitem,我有一个自定义MSBuild任务,它处理一组文件并返回该文件的修改子集。基本上,我只是从输入中创建一个新的ITaskItem数组,跳过一些项 但是,当此结果集返回到MSBuild时,RecursiveDir元数据将消失!它在自定义任务的Execute()方法的末尾仍然具有正确的值,但是当我尝试在MSBuild中使用RecursiveDir时,我发现它是空的!当然,这是一个相当大的问题 我该怎么办?这正常吗?其他元数据(如文件名和扩展名)仍然存在。标识还指向正确的文件。我不会在自定义任务中以任何方
我正在使用MSBuild 3.5。是的,这是正常的。你对此无能为力。我已经仔细阅读了MSBuild源代码,显然,进入自定义任务的项和返回的项是完全不同的。MSBuild最初创建自己的非常特殊的项,后来它们变得非常“愚蠢” 我为这种情况找到的解决方案是:
我刚刚遇到了同样的问题。通过显式地将“RecursiveDir”元数据值设置为其当前值,我成功地克服了这个“限制”(我认为是MSBuild bug) 执行此操作后,我的输出
ITaskItem[]
保留了该值