6

Kullanılacak doğru tip ItemGroup olup olmadığını bilmiyorum. Seçime bağlı olarak doğru ya da yanlış olan 4 farklı boole alacağım.MSBuild ItemGroup with

Bu "dizeler" ile bir ItemGroup doldurmak istiyorum doğru veya yanlış olarak. Bu mümkün mü yoksa ne kullanmalıyım?

Örnek

Anders = true 
Peter = false 
Michael = false 
Gustaf = true 

Benim ItemGroup sonra Anders ve Gustaf olmalıdır.

Bu mümkün mü yoksa bunu nasıl çözmeliyim?

+0

Ya bu "dizeleri": onlar özelliklerini olmalıdır eğer

<ItemGroup> <Names Include="Anders"> <Value>True</Value> </Names> <Names Include="Peter"> <Value>False</Value> </Names> <Names Include="Michael"> <Value>False</Value> </Names> <Names Include="Gustaf"> <Value>True</Value> </Names> </ItemGroup> <Target Name="GetNames"> <ItemGroup> <AllNames Include="%(Names.Identity)" Condition="%(Names.Value)==true"/> </ItemGroup> <Message Text="@(AllNames)"/> <!--AllNames contains Anders and Gustaf--> </Target> 

Ancak, ben şöyle elle hepsini numaralandırılırken daha başka bir yolu yoktur sanmıyorum? Bir metin dosyasında mı? Msbuild özellikleri mi? Ayrıca, lütfen yazımınızı kontrol edin. It ItemGroup' iteamgroup' – stijn

+0

msbuild düzenleri – user1540911

cevap

9

Bir sürü öğeniz olduğundan, başlangıç ​​için ItemGroup numaralı belgede saklamak daha iyi olurdu, çünkü bunun ne anlama geldiğinden ve dönüştürmelere de izin verdiğinden beri. Örneğin, bu istediğinizi gerçekleştirir:

<PropertyGroup> 
    <Anders>True</Anders> 
    <Peter>False</Peter> 
    <Michael>False</Michael> 
    <Gustaf>True</Gustaf> 
</PropertyGroup> 

<Target Name="GetNames"> 

    <ItemGroup> 
    <AllNames Include="Anders" Condition="$(Anders)==true"/> 
    <AllNames Include="Peter" Condition="$(Peter)==true"/> 
    <AllNames Include="Michael" Condition="$(Michael)==true"/> 
    <AllNames Include="Gustaf" Condition="$(Gustaf)==true"/> 
    </ItemGroup> 

    <Message Text="@(AllNames)"/> 
</Target>