2012-02-02 10 views
5

के साथ पूर्वनिर्धारित ब्लॉक को स्थिरांक पास करना CC.NET में पूर्वनिर्धारित ब्लॉक के लिए "पासिंग" प्रीप्रोसेसर स्थिरांक का पसंदीदा तरीका क्या है?क्रूज़ कंट्रोल.NET प्रीप्रोसेसर

मान लिया जाये कि मैं निम्नलिखित घोषणाओं है:

<cb:define name="ProjectHeaderBlock"> 
    <name>$(ProjectName)</name> 
    <workingDirectory>C:\MyProjects\$(ProjectName)</workingDirectory> 
</cb:define> 

<cb:define name="ProjectBlock"> 
    <project> 
     <cb:ProjectHeaderBlock /> 

     <triggers /> 
     <tasks /> 
     <publishers /> 
    </project> 
</cb:define> 

मैं दो तरीकों से ProjectName निरंतर पारित कर सकते हैं:

  1. सीबी का उपयोग करना: गुंजाइश

    <cb:scope ProjectName="FooProject" > 
        <cb:ProjectBlock /> 
    </cb:scope> 
    
  2. पासिंग सीधे घोषणा में

    <cb:ProjectBlock ProjectName="FooProject" /> 
    

वे दोनों ठीक से काम किया है और भीतरी ProjectHeaderBlock उचित ProjectName मूल्य के साथ प्रारंभ किया गया था।

क्या इन दो विकल्पों के बीच कोई अंतर है? कौन सा बेहतर/अधिक कुशल है?

उत्तर

4

आप सही हैं: वे दोनों काम करते हैं। एकमात्र कार्यात्मक अंतर जिसे मैं जानता हूं वह है कि scope तत्वों में परिभाषित प्रीप्रोसेसर प्रतियोगिताओं को ओवरराइट करने योग्य हैं यानी, उन्हें बाद में फिर से परिभाषित किया जा सकता है।

मैं scope परिभाषित प्रीप्रोसेसर स्थिरांक का उपयोग डिफ़ॉल्ट मानों को सेट करने के लिए करता हूं जो आवश्यक होने पर मैं ओवरराइट करता हूं।

व्यक्तिगत रूप से मैं दूसरा संस्करण पसंद करता हूं क्योंकि यह आपके एक्सएमएल में घोंसले से बचाता है।

+0

धन्यवाद, इस ओवरराइटिंग bevahiour के बारे में जानना अच्छा है –

संबंधित मुद्दे