आप एक विशिष्ट स्थिति के आधार पर एक मौजूदा ItemGroup फिल्टर कैसे करूं से मेल खाते हैं, भी शामिल है?फ़िल्टर एक मौजूदा itemgroup तो यह केवल इस तरह के फाइल एक्सटेंशन या आइटम के मेटाडेटा के रूप में फाइल है कि कुछ शर्त
इस उदाहरण के लिए, मैं फाइल एक्सटेंशन का उपयोग करेंगे। मैं वीएस द्वारा परिभाषित 'कोई नहीं' आइटम समूह फ़िल्टर करने की कोशिश कर रहा हूं ताकि मेरा लक्ष्य किसी दिए गए एक्सटेंशन की सभी फ़ाइलों पर काम कर सके।
उदाहरण के लिए, निम्नलिखित में परिभाषित किया जा सकता है:
<ItemGroup>
<None Include="..\file1.ext" />
<None Include="..\file2.ext" />
<None Include="..\file.ext2" />
<None Include="..\file.ext3" />
<None Include="..\file.ext4" />
</ItemGroup>
मैं फिल्टर करने के लिए 'कोई नहीं' से ऊपर ItemGroup तो यह केवल ext
एक्सटेंशन शामिल करना चाहते हैं। ध्यान दें कि मैं क्या के रूप में वे परियोजना के साथ बदलता जाएगा नहीं, सभी विस्तार बाहर करने के लिए निर्दिष्ट करना चाहते हैं और मैं अपने लक्ष्य संशोधन के बिना पुन: प्रयोज्य बनाने की कोशिश कर रहा हूँ।
मैं एक लक्ष्य के भीतर एक Condition
जोड़ने की कोशिश की है:
<Target Name="Test">
<ItemGroup>
<Filtered
Include="@(None)"
Condition="'%(Extension)' == 'ext'"
/>
</ItemGroup>
<Message Text="None: '%(None.Identity)'"/>
<Message Text="Filtered: '%(Filtered.Identity)'"/>
</Target>
लेकिन दुर्भाग्य से, यह काम नहीं करता। मैं उत्पादन के लिए निम्नलिखित हो:
Test:
None: '..\file1.ext'
None: '..\file2.ext'
None: '..\file.ext2'
None: '..\file.ext3'
None: '..\file.ext4'
Filtered: ''
मेरा मानना है कि% (एक्सटेंशन) को '.ext' होना चाहिए –
'% (एक्सटेंशन) 'को' @ (कोई नहीं) 'में आइटम के विस्तार में विस्तारित किया जाना चाहिए, जिसे मैं' एक्सटी ', लक्ष्य विस्तार से तुलना करना चाहता हूं। –
मेरा मतलब है कि इसे सचमुच '.ext' होना चाहिए, जैसा कि पहले चार के रूप में एक बिंदु के साथ, ठीक है तो ठीक काम करता है। –