別のアイテム グループからフィルター処理されたアイテム グループを作成しようとしています。フィルター処理されたアイテム グループには、指定されたファイル拡張子を持つ最初のグループのアイテムのみが含まれます。
次のエラーが表示されます。
エラー MSB4190: 位置 1 の組み込みメタデータ "Extension" への参照は、この条件 "'%(Extension)'=='.sys'" では許可されていません。
これを実行すると:
<?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 の人為的な制限または実装されていない部分ですか?
第二に、この種の変換を達成するための簡潔な方法は何ですか?
どうもありがとう。