2017-02-22 66 views
0

如果有包含只包括文件名的文件名和擴展名,以及其他的ItemGroup一個的ItemGroup:的MSBuild - 的ItemGroup路口

<ItemGroup> 
     <GroupA Include="file.1.txt"/> 
     <GroupA Include="file.2.txt"/> 
     <GroupA Include="file.3.txt"/> 
     <GroupA Include="file.4.txt"/> 
</ItemGroup> 


<ItemGroup> 
     <GroupB Include="file.1"/> 
     <GroupB Include="file.3"/> 
     <GroupB Include="file.5"/> 
</ItemGroup> 

如何獲得來自A組的名稱一致的項在GroupB?

我正在查看張貼的信息here但是,由於缺少擴展名,它不適用。

回答

0

引入其延伸與TMP擴展對象的名稱的時間的ItemGroup,可以達到:

<CreateItem Include="%(GroupB.Filename)%(GroupB.Extension).tmp" 
    AdditionalMetadata="CompleteName=%(GroupB.Filename)%(GroupB.Extension)"> 
    <Output TaskParameter="Include" ItemName="GroupB1" /> 
</CreateItem> 

<Message Text="%(GroupB1.CompleteName)"/> 
<Message Text="|@(GroupA)| – |%(Filename)| – |@(GroupB1)|"/> 

<CreateItem Include="@(GroupA)" Condition="'%(Filename)' != ''and '@(GroupB1)' != ''"> 
    <Output TaskParameter="Include" ItemName="GroupC"/> 
</CreateItem> 
<Message Text="%(GroupC.Filename)"/>