Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CruiseControl.NET预处理器将常量传递到预定义块_.net_Cruisecontrol.net - Fatal编程技术网

使用CruiseControl.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

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

$(项目名称)
C:\MyProjects\$(项目名称)
我可以通过两种方式传递ProjectName常量:

  • 使用cb:scope

    <cb:scope ProjectName="FooProject" >
        <cb:ProjectBlock />
    </cb:scope>
    
    
    
  • 在声明中直接传递

    <cb:ProjectBlock ProjectName="FooProject" />
    
    
    
  • 它们都工作正常,内部ProjectHeaderBlock使用正确的ProjectName值初始化


    这两种选择之间有什么区别吗?哪一个更好/更有效

    你说得对:它们都有效。我所知道的唯一功能上的区别是,
    scope
    元素中定义的预处理器contant是可覆盖的,也就是说,它们以后可能会被重新定义

    我使用
    scope
    定义的预处理器常量来设置默认值,必要时覆盖这些值

    我个人更喜欢第二个版本,因为它避免嵌套在xml中