Mac*_*iak 5 .net cruisecontrol.net
在CC.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>
Run Code Online (Sandbox Code Playgroud)
我可以通过两种方式传递ProjectName常量:
使用cb:scope
<cb:scope ProjectName="FooProject" >
<cb:ProjectBlock />
</cb:scope>
Run Code Online (Sandbox Code Playgroud)直接通过声明
<cb:ProjectBlock ProjectName="FooProject" />
Run Code Online (Sandbox Code Playgroud)它们都正常工作,内部ProjectHeaderBlock使用正确的ProjectName值进行初始化.
这两个选项之间有什么区别吗?哪一个更好/更有效?
你是对的:它们都起作用。我知道的唯一功能差异是scope元素中定义的预处理器内容是可重写的,即它们可以稍后重新定义。
我使用scope定义的预处理器常量来设置默认值,如有必要,我会覆盖这些默认值。
我个人更喜欢第二个版本,因为它避免了在 xml 中嵌套。
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |