我正在尝试从另一个筛选项目组创建一个筛选项目组,其中筛选的项目组将只包含第一个组中具有指定文件扩展名的项目。
我得到以下错误:
错误扩展名:在此条件“‘%(MSB4190)’==‘.sys’”中不允许引用位置%1处的内置元数据“扩展名”。
当我运行以下命令时:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTargets="Go"
ToolsVersion="4.0">
<ItemGroup>
<Files Include="X.exe"/>
<Files Include="Y.sys"/>
</ItemGroup>
<ItemGroup>
<SysFiles Include="%(Files.Identity)" Condition="'%(Extension)'=='.sys'">
</SysFiles>
</ItemGroup>
<Target Name="Go">
<Message Text="SysFiles=@(SysFiles)"/>
</Target>
</Project>首先,我不明白为什么这个位置不允许元数据?它是人为的限制还是msbuild中未实现的部分?
其次,实现这种转换的简明方法是什么?
非常感谢。
发布于 2012-11-01 21:19:45
好的,我发现如果我指定ItemGroup SysFiles inside目标Go,它将不会出错。
https://stackoverflow.com/questions/13177552
复制相似问题