来自自定义任务参数的MSBuild get%(RecursiveDir)指令

来自自定义任务参数的MSBuild get%(RecursiveDir)指令,msbuild,msbuild-task,itaskitem,Msbuild,Msbuild Task,Itaskitem,我正在通过从基本任务类继承来开发自定义MSBuild任务。我的任务调用在Microsoft.Build.Tasks.dll中声明的复制任务,设置进程中的DestinationFolder属性。我的自定义任务有一个名为DestinationFolder的属性声明为 public ITaskItem DestinationFolder { get; set; } 从生成/项目文件调用此任务时,我可能会传入一个参数,例如 <MyTask DestinationFolder="C:\Develo

我正在通过从基本任务类继承来开发自定义MSBuild任务。我的任务调用在
Microsoft.Build.Tasks.dll
中声明的复制任务,设置进程中的DestinationFolder属性。我的自定义任务有一个名为DestinationFolder的属性声明为

public ITaskItem DestinationFolder { get; set; }
从生成/项目文件调用此任务时,我可能会传入一个参数,例如

<MyTask DestinationFolder="C:\Development\Test\%(RecursiveDir)"

链接问题涉及任务的输出参数,其中此问题涉及输入。这里的问题是,您已将DestinationFolder声明为ITaskItem,但传递的是字符串

您没有为我提供足够的示例来准确地了解您要做什么,但是假设您有一个名为“C:\Development\Test\Bin\SomeFile.txt”的文件,您可以在项目中定义一个项,如:

<ItemGroup>
    <DestinationFolderArgument Include="C:\Development\Test\**\SomeFile.txt" />
</ItemGroup>
<MyTask DestinationFolder="@(DestinationFolderArgument)" />

现在,您的任务将可以访问该项的所有元数据,并且RecursiveDir将包含“Bin\”