使用CruiseControl.NET预处理器将常量传递到预定义块
在CC.NET中将预处理器常量“传递”到预定义块的首选方式是什么 假设我有以下声明:使用CruiseControl.NET预处理器将常量传递到预定义块,.net,cruisecontrol.net,.net,Cruisecontrol.net,在CC.NET中将预处理器常量“传递”到预定义块的首选方式是什么 假设我有以下声明: <cb:define name="ProjectHeaderBlock"> <name>$(ProjectName)</name> <workingDirectory>C:\MyProjects\$(ProjectName)</workingDirectory> </cb:define> <cb:define nam
<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>
$(项目名称)
C:\MyProjects\$(项目名称)
我可以通过两种方式传递ProjectName常量:
<cb:scope ProjectName="FooProject" >
<cb:ProjectBlock />
</cb:scope>
<cb:ProjectBlock ProjectName="FooProject" />
这两种选择之间有什么区别吗?哪一个更好/更有效 你说得对:它们都有效。我所知道的唯一功能上的区别是,
scope
元素中定义的预处理器contant是可覆盖的,也就是说,它们以后可能会被重新定义
我使用scope
定义的预处理器常量来设置默认值,必要时覆盖这些值
我个人更喜欢第二个版本,因为它避免嵌套在xml中