2012-02-02 19 views
5

CC.NET'te önişlemci sabitlerinin önişlemci sabitlerine "geçişi" için tercih edilen yol hangisidir? Ben iki şekilde ProjeAdı sabit geçebilirCruiseControl.NET önişlemcisi ile önceden tanımlanmış bloklara sabitleri geçirme

<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> 

:

Aşağıdaki bildirimleri var varsayarsak

  1. cb kullanma: kapsam

    <cb:scope ProjectName="FooProject" > 
        <cb:ProjectBlock /> 
    </cb:scope> 
    
  2. Geçme doğrudan bildirimde

    <cb:ProjectBlock ProjectName="FooProject" /> 
    
ikisi de uygun şekilde çalıştı ve iç ProjectHeaderBlock uygun projectname değeri ile başlatıldı.

Bu iki seçenek arasında herhangi bir farklılık var mı? Hangisi daha iyi/daha verimli?

cevap

4

Haklısınız: İkisi de çalışıyorlar. Farkına vardığım tek fonksiyonel fark, scope elemanlarında tanımlanan önişlemci konkanların geçersiz kalmasıdır, yani daha sonra yeniden tanımlanabilirler.

Gerekirse üzerine yazdığım varsayılan değerleri ayarlamak için scope tanımlı önişlemci sabitlerini kullanıyorum.

Şahsen, xml'nizde yuvalamadan kaçındığı için ikinci sürümü tercih ederim.

+0

Teşekkürler, bu overwriting bevahiour hakkında bilmek iyi –

İlgili konular