2011-07-21 9 views
2

私は、特定のディレクトリ内のすべてのファイルをClCompileメタデータのForcedUsingFilesパラメータに追加しようとしています。MSBuildのデフォルトのItemDefinitionGroupメタデータにItemListを追加するには?

私は、次のコードを使用しています:

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

をしかし、私はエラーに

値を取得しています "@(ForcedUsingFilesList)" は、項目リストが含まれているメタデータ "ForcedUsingFiles" の表現。アイテムリストの式は、デフォルトのメタデータ値では ではありません。

このエラーを回避するにはどうすればよいですか?

おかげ

答えて

5

ああ、私はプロパティにITEMLISTを変換する間接の余分な層を追加するために必要なように見えます。次に、ItemDefinitionGroupにプロパティを貼り付けることができました。

は、しかし、これを行うために、より直接的な方法があったのトリックを希望でした次のコード:

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

@ZimiRizvi中間 'PropertyGroup'せずにこれを行う方法はありますか?私はここでほとんど同じものをやろうとしています:http://stackoverflow.com/q/26801753/2642059 –

+0

@ Jonathan-Mee私はそこにいるとは思わない。可能であれば、私はそれについて知りません –

+0

@ZimiRizvi次のカップル日以上の時間があれば、これを回答として入力してください:http://stackoverflow.com/q/26801753/2642059私はそれが近いと思います私は正しい答えを得るつもりです。 –