2011-02-11 17 views
0

でディレクトリ内のDLLのリストを取得するには、次は私だけで1ファイル、exeファイルできます:私は、Condition属性を削除した場合MSBuildの

<ItemGroup> 
     <AssembliesToMerge Include="$(MSBuildProjectDirectory)\App\bin\Release\*.*" Condition="'%(Extension)'=='.dll'"/> 
     <AssembliesTomerge Include="$(MSbuildProjectDirectory)\App\bin\Release\App.exe"/> 
</ItemGroup> 

を、AssembliesToMergeは、ディレクトリ内のすべてのファイルが含まれています - DLLとそうでない場合。私は間違って何をしていますか?

私はこれをILMerge MSBuildCommunityExtensionsタスクでテストしています。 ItemGroupにアイテムを直接印刷する方法がある場合は、そのアイテムがCondition属性の問題であることを確認するのに役立ちます。

答えて

2

ちょうど私が項目metadatasを作成中にまだ設定されていないので、それが条件属性を使用して動作しないと思いますdllファイル(Items wildcard

<ItemGroup> 
    <AssembliesToMerge Include="$(MSBuildProjectDirectory)\App\bin\Release\*.dll"/> 
    <AssembliesTomerge Include="$(MSbuildProjectDirectory)\App\bin\Release\App.exe"/> 
</ItemGroup> 

を、フィルタリングするを含めるでワイルドカードを使用しますしたがって%(Extension)は空です。

+0

ハハ、ありがとう。少年は私が羊を感じる:) –