2012-02-02 19 views
5

Cách ưu tiên của việc "chuyển tiếp" hằng số tiền xử lý cho các khối được xác định trước trong CC.NET là gì?Chuyển các hằng số vào các khối được xác định trước với bộ xử lý trước của CruiseControl.NET

Giả sử tôi có tờ khai sau:

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

tôi có thể vượt qua ProjectName liên tục trong hai cách:

  1. Sử dụng cb: phạm vi

    <cb:scope ProjectName="FooProject" > 
        <cb:ProjectBlock /> 
    </cb:scope> 
    
  2. Passing trực tiếp kê khai

    <cb:ProjectBlock ProjectName="FooProject" /> 
    

Cả hai đều làm việc đúng cách và nội ProjectHeaderBlock được khởi tạo với đúng ProjectName giá trị.

Có sự khác biệt nào giữa hai tùy chọn này không? Cái nào tốt hơn/hiệu quả hơn?

Trả lời

4

Bạn nói đúng: Họ làm việc cả hai. Sự khác biệt chức năng duy nhất mà tôi biết là các đối tượng tiền xử lý được xác định trong các phần tử scope có thể ghi đè, tức là chúng có thể được xác định lại sau.

Tôi sử dụng scope hằng số tiền xử lý được xác định để đặt giá trị mặc định mà tôi ghi đè nếu cần.

Cá nhân tôi thích phiên bản thứ hai vì nó tránh làm tổ trong xml của bạn.

+0

Cảm ơn, rất vui khi biết về việc ghi đè này bevahiour –

Các vấn đề liên quan