3

我在巡航控制配置文件中创建了一个变量

我想稍后在执行期间更改巡航控制中这个变量的值。基本上我想要的是在执行task1时,'MyVariable'的值应该是'val1',而在执行task2时,值应该是'val2'。

我想要的另一件事是,不应该有来自 ui 的手动交互或手动分配,值应该自动更改。

任何人都可以帮助我实现这一目标吗?任何建议/意见都会有很大帮助。提前致谢。

4

2 回答 2

4

我正在使用以下方法来编译一个具有不同参数的 MSBuild(ccnet 1.8):

<cb:define name="Build">
  <msbuild>
     <some_parameter>$(MyVariable)</some_parameter>
     <other_parameter>parameter_value</other_parameter>
  </msbuild>
</cb:define>

然后在任务部分:

<cb:Build MyVariable="val1" />
<cb:Build MyVariable="val2" />
于 2013-06-19T16:13:06.897 回答
0

如果 MyVariable 的这些值是恒定的(我的意思是对于给定的任务总是相同的),那么我会使用preprocessor。然后您可以使用 cb:scope 覆盖该值。

例如,这是我对项目配置所做的:

<cb:scope 
    Project.Name = "ProjectName - Feedback - Integration tests"
    Project.ShortName = "project-name-feedback-quick"
    Project.Category = "Project Name - Feedback"
    Project.Description =  "Run integration tests"
>

    <project name="$(Project.Name)" description="$(Project.Description)">               
        <artifactDirectory>$(CIRootFolderPath)\$(Project.ShortName)\Artifacts</artifactDirectory>
        <workingDirectory>$(CIRootFolderPath)\$(Project.ShortName)\WorkingDir</workingDirectory>
        <state type="state" directory="$(CIRootFolderPath)\$(Project.ShortName)" />

<task>所以你会用块包围每个<cb:scope>并在那里重新定义 MyVariable 的值。

于 2013-06-19T08:59:30.190 回答