如何将ItemList添加到MSBuild中的默认ItemDefinitionGroup元数据?

如何将ItemList添加到MSBuild中的默认ItemDefinitionGroup元数据?,msbuild,task,Msbuild,Task,我试图将给定目录中的所有文件添加到ClCompile元数据的ForcedSingFiles参数中 我正在使用以下代码: <ItemGroup> <ForcedUsingFilesList Include="c:\path\to\files\*" /> </ItemGroup> <ItemDefinitionGroup> <ClCompile> <ForcedUsingFiles>@(ForcedUsingFi

我试图将给定目录中的所有文件添加到ClCompile元数据的ForcedSingFiles参数中

我正在使用以下代码:

<ItemGroup>
  <ForcedUsingFilesList Include="c:\path\to\files\*" />
</ItemGroup>
<ItemDefinitionGroup>
  <ClCompile>
    <ForcedUsingFiles>@(ForcedUsingFilesList)</ForcedUsingFiles>
  </ClCompile>
</ItemDefinitionGroup>

@(ForcedSingFileList)
但我得到了错误

元数据“ForcedSingFiles”的值“@(ForcedSingFilesList)” 包含项目列表表达式。不支持项目列表表达式 在默认元数据值上允许

你知道我该如何解决这个错误吗


感谢

啊,看来我需要添加额外的间接层来将ItemList转换为属性。然后我可以将属性粘贴到ItemDefinitionGroup中

下面的代码实现了这一点,希望有一种更直接的方法来实现这一点:

  <ItemGroup>
    <ForcedUsingFilesList Include="c:\path\to\files\*" />
  </ItemGroup>
  <PropertyGroup>
    <ForcedUsingFilesList2>
        @(ForcedUsingFilesList->'%(FullPath)')
    </ForcedUsingFilesList2>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <ClCompile>     
      <ForcedUsingFiles>$(ForcedUsingFilesList2)</ForcedUsingFiles>
    </ClCompile>
  </ItemDefinitionGroup>

@(ForcedSingFileList->'%(完整路径)')
$(ForcedSingFileList2)

@ZimiRizvi有没有一种方法可以在没有中间
属性组的情况下实现这一点?我试图在这里做一些几乎相同的事情:@Jonathan Mee我认为没有。如果可能的话,我不知道it@ZimiRizvi如果你在接下来的几天里有时间来回答这个问题:我想这是我最接近得到正确答案的时候了。