我正在尝试将给定目录中的所有文件添加到ClCompile元数据的ForcedUsingFiles参数中。
我正在使用以下代码:
<ItemGroup>
<ForcedUsingFilesList Include="c:\path\to\files\*" />
</ItemGroup>
<ItemDefinitionGroup>
<ClCompile>
<ForcedUsingFiles>@(ForcedUsingFilesList)</ForcedUsingFiles>
</ClCompile>
</ItemDefinitionGroup>
但我收到了错误
元数据“ForcedUsingFiles”的值“@(ForcedUsingFilesList)” 包含项列表表达式。项目列表表达式不是 允许使用默认元数据值。
我知道如何解决这个错误吗?
由于
答案 0 :(得分:6)
啊,看起来我需要添加一个额外的间接层来将ItemList转换为Property。然后我可以将属性粘贴到ItemDefinitionGroup。
以下代码完成了这个伎俩,希望有更直接的方法来做到这一点:
<ItemGroup>
<ForcedUsingFilesList Include="c:\path\to\files\*" />
</ItemGroup>
<PropertyGroup>
<ForcedUsingFilesList2>
@(ForcedUsingFilesList->'%(FullPath)')
</ForcedUsingFilesList2>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<ForcedUsingFiles>$(ForcedUsingFilesList2)</ForcedUsingFiles>
</ClCompile>
</ItemDefinitionGroup>