Mic*_*tum 15 cruisecontrol.net msbuild
我正在尝试设置CruiseControl.net.到目前为止它工作得很好,但我遇到了MSBuild任务的问题.
根据文档,它将CCNetArtifactDirectory传递给MSBuild.但是我该如何使用它?
我试过这个:
<buildArgs>
/noconsolelogger /p:OutputPath=$(CCNetArtifactDirectory)\test
</buildArgs>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.实际上,它会使用以下错误杀死服务:
ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException:对未知符号的引用CCNetArtifactDirectory
文档相当稀疏,google und主要提供修改.sln项目文件,这是我想要避免的,以便以后能够手动构建这个项目 - 我真的更喜欢/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>
Run Code Online (Sandbox Code Playgroud)
因此,在上面的示例中,您的构建输出将放在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>
Run Code Online (Sandbox Code Playgroud)
这将允许您将输出发布到其他位置.
您可以在MSBuild脚本本身内使用工件目录变量.以下是我现在从CC.Net MSBuild脚本运行FxCop的示例(此脚本是CC.Net指向的内容 - 脚本中还有一个"Build"目标,其中包含针对SLN的MSBuild任务做实际的编译):
<Exec
Command='FxCopCmd.exe /project:"$(MSBuildProjectDirectory)\FXCopRules.FxCop" /out:"$(CCNetArtifactDirectory)\ProjectName.FxCop.xml"'
WorkingDirectory="C:\Program Files\Microsoft FxCop 1.35"
ContinueOnError="true"
IgnoreExitCode="true"
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6244 次 |
| 最近记录: |