我目前正在尝试设置CruiseControl.net。到目前为止,它的工作情况不错,但是我对MSBuild任务有疑问。
根据Documentation,它将CCNetArtifactDirectory传递给MSBuild。但是我该如何使用呢?
我尝试了这个:
<buildArgs>
/noconsolelogger /p:OutputPath=$(CCNetArtifactDirectory)\test
</buildArgs>
但这不起作用。实际上,它会由于以下错误而终止服务:
ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException:对未知符号CCNetArtifactDirectory的引用
文档非常稀疏,并且google und主要提供修改.sln Project文件的功能,这是我想要避免的,以便以后能够手动构建此项目-我真的更喜欢
/p:OutputPath
。 最佳答案
CCNetArtifactDirectory默认情况下传递给MSBuild,因此您无需担心。 MSBuild会将生成的输出放置在与您指定的工作目录相关的“ bin位置”中。
<executable>c:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\data\projects\FooSolution\</workingDirectory>
<projectFile>FooSolution.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug </buildArgs>
因此,在上面的示例中,您的构建输出将放置在C:\ data \ projects \ FooSolution [ProjectName] \ bin \ Debug中。如果要输出到其他位置,则可能要查看CCNET中的标签。
<publishers>
<xmllogger />
<buildpublisher>
<sourceDir>C:\data\projects\FooSolution\FooProject\bin\Debug</sourceDir>
<publishDir>C:\published\FooSolution\</publishDir>
<useLabelSubDirectory>false</useLabelSubDirectory>
</buildpublisher>
</publishers>
这将使您可以将输出发布到其他位置。
关于msbuild - CruiseControl.net,msbuild,/p:OutputPath和CCNetArtifactDirectory,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/835/