在Cruisecontrol中设置环境变量

时间:2011-12-13 11:31:28

标签: windows environment-variables cruisecontrol

如何在Cruisecontrol中设置环境变量?

如果我尝试这样做:

<exec command="set PATH="
                workingdir="d:\AppLiteNew\Projects\"
                args = "%PATH%;D:\QtSDK\mingw\bin\"/> 

它不起作用,我得到的只是:

  

[cc] Dec-13 13:30:28 ExecBuilder - 无法执行命令:设置PATH =参数:%PATH%; D:\ QtSDK \ mingw \ bin \

2 个答案:

答案 0 :(得分:7)

首先,您使用exec命令错误

命令为set,其参数应为PATH=%PATH%;D:\QtSDK\mingw\bin\

这应该有效:

<exec command="set"
  workingdir="d:\AppLiteNew\Projects\"
  args = "PATH=%PATH%;D:\QtSDK\mingw\bin\"/> 

其次,它不会产生影响

您设置的路径仅对通过调用exec执行的shell /命令可用。通话结束后,将无法进一步执行命令/执行 您没有说明您拥有的用例或您需要变量的位置,因此我只能猜测,您可以做什么。 您可以执行以下操作:

  1. 直接在Windows中设置路径,以获取所有内容(如果可以的话)
  2. 编辑批处理文件,启动cruisecontrol并将PATH设置为
  3. 为需要PATH的命令创建批处理文件,并在那里设置PATH。
  4. 某些ant-tasks允许为它们指定环境变量

答案 1 :(得分:1)

在CruiseControl.net中,您可以在任务配置中设置它们。他们进入一个环境区块:

<environment>
    <variable name="MyVar2" value="Var2Value" />
</environment>

以下是完整的示例:

<msbuild>
    <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
    <workingDirectory>C:\dev\ccnet</workingDirectory>
    <projectFile>CCNet.sln</projectFile>
    <buildArgs>/p:Configuration=Debug /v:diag</buildArgs>
    <targets>Build;Test</targets>
    <timeout>900</timeout>
    <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
    <environment>
        <variable name="MyVar2" value="Var2Value" />
    </environment>
 </msbuild>