如何在Cruisecontrol中设置环境变量?
如果我试着这样做:
<exec command="set PATH="
workingdir="d:AppLiteNewProjects"
args = "%PATH%;D:QtSDKmingwbin"/>
它不工作,我得到的是:
[cc]Dec-13 13:30:28 ExecBuilder -无法执行命令:set PATH= with arguments: %PATH%;D:QtSDKmingwbin
首先,您错误地使用了exec命令
命令为set
,其参数应为PATH=%PATH%;D:QtSDKmingwbin
这个应该可以工作:
<exec command="set"
workingdir="d:AppLiteNewProjects"
args = "PATH=%PATH%;D:QtSDKmingwbin"/>
其次,它不会产生您设置的路径,将只对通过调用exec执行的shell/命令可用。调用后,它将不可用于进一步的命令/执行。
您没有说明您有什么用例或在哪里需要变量,因此我只能猜测您可以做什么。您可以执行以下操作:
- 在Windows中直接设置路径(如果可以的话)
- 编辑批处理文件,启动cruiscontrol并设置PATH
- 为需要PATH的命令创建一个批处理文件,并在其中设置PATH。
- 一些反任务允许为它们指定环境变量
在CruiseControl.net中,您可以在任务的配置中设置它们。它们放在一个环境块中:
<environment>
<variable name="MyVar2" value="Var2Value" />
</environment>
这里是一个完整的示例:
<msbuild>
<executable>C:WINDOWSMicrosoft.NETFrameworkv2.0.50727MSBuild.exe</executable>
<workingDirectory>C:devccnet</workingDirectory>
<projectFile>CCNet.sln</projectFile>
<buildArgs>/p:Configuration=Debug /v:diag</buildArgs>
<targets>Build;Test</targets>
<timeout>900</timeout>
<logger>C:Program FilesCruiseControl.NETserverThoughtWorks.CruiseControl.MsBuild.dll</logger>
<environment>
<variable name="MyVar2" value="Var2Value" />
</environment>
</msbuild>