2010-06-09 10 views
12

एक MSBuild स्क्रिप्ट का निम्न भाग का निरीक्षण करें:एमएसबिल्ड आइटम समूह समूह को अर्ध-कॉलन की बजाय किसी स्थान से अलग कैसे किया जाए?

<ItemGroup> 
    <R Include="-Microsoft.Design#CA1000" /> 
    <R Include="-Microsoft.Design#CA1002" /> 
</ItemGroup> 

मैं इसे

/ruleid:-Microsoft.Design#CA1000 /ruleid:-Microsoft.Design#CA1002

अब करने के लिए परिवर्तित करना चाहते हैं, सबसे अच्छा मैं के साथ आया था @(R -> '/ruleid:%(Identity)') है, लेकिन यह केवल पैदावार

/ruleid:-Microsoft.Design#CA1000;/ruleid:-Microsoft.Design#CA1002

सेमी-कोलन को अलग करने पर ध्यान दें एक अंतरिक्ष के बजाय ई दो नियम। यह बुरा है, यह fxcop द्वारा पहचाना नहीं गया है - मुझे वहां एक जगह चाहिए।

अब, यह एक सरल उदाहरण है, तो मैं बस कुछ इस तरह की घोषणा कर सकता है:

<PropertyGroup> 
    <R>/ruleid:-Microsoft.Design#CA1000 /ruleid:-Microsoft.Design#CA1002</R 
</PropertyGroup> 

लेकिन, मुझे यह पसंद नहीं है, मैं अक्षम करना चाहते हैं और सभी लिस्टिंग क्योंकि वास्तविकता में मैं कई नियम है उनमें से कुछ ऐसा है जो मैं टालना चाहता हूं।

उत्तर

20

अर्धविराम के अलावा किसी अन्य चरित्र का उपयोग करके प्रत्येक आइटम परिसीमित करने के लिए, वाक्य विन्यास का उपयोग @(myType, 'separator')

<ItemGroup> 
    <R Include="-Microsoft.Design#CA1000" /> 
    <R Include="-Microsoft.Design#CA1002" /> 
</ItemGroup> 

<Target Name="FxcopRulesFlattening"> 
    <!-- Using the syntax @(ItemName, 'Separator')--> 
    <Message Text="@(R -> '/ruleid:%(Identity)', ' ')"/> 
</Target> 
संबंधित मुद्दे