我试图安装CruiseControl.net 的时刻。迄今为止它的工作很好,但是我有个问题请参阅任务。

根据 文档, ,它通过CCNetArtifactDirectory到MSBuild。但我怎么使用它?

我试图这样的:

<buildArgs>
   /noconsolelogger /p:OutputPath=$(CCNetArtifactDirectory)\test
</buildArgs>

但是,这不起作用。事实上,它杀死的服务与这个错误:

真实的.CruiseControl.核心。Config。预处理器。EvaluationException:参照未知的符号CCNetArtifactDirectory

文件是相当稀少,谷歌und主要提供修改的。sln项目文件,该文件是我想要避免为了能够用手建立这一项目后我会真的喜欢 /p:OutputPath.

有帮助吗?

解决方案

该CCNetArtifactDirectory传递给请参阅通过默认,所以你不需要担心它。MSBuild将建立输出的"站的位置"相关的工作目录,你已经指定。

<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[项目名称]\bin\调试。你应该想出一个不同的位置你可能想看到的标记在CCNET.

<publishers>
  <xmllogger />
  <buildpublisher>
    <sourceDir>C:\data\projects\FooSolution\FooProject\bin\Debug</sourceDir>
    <publishDir>C:\published\FooSolution\</publishDir>
    <useLabelSubDirectory>false</useLabelSubDirectory>
  </buildpublisher>
</publishers>

这将允许你来发布你输出到一个不同的位置。

其他提示

你可以使用项目目录的变量请参阅脚本本身。这里是一个例子,我是如何运行FxCop现在从我的CC.Net MSBuild脚本(这个脚本是什么CC.Net 点-还有一个"建立"目标的脚本中包括一个MSBuild任务对SLN要做到实际编辑):

<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"
/>

等参数 CCNetArtifactDirectory 传递给外部程序使用环境变量。他们都可以在外部程序,但他们没有内部 CCNET 配置。这往往会导致混乱。

你可以使用一个预处理器常数而不是:

<cb:define project.artifactDirectory="C:\foo">
<project>
  <!-- [...] -->
  <artifactDirectory>$(project.artifactDirectory)</artifactDirectory>
  <!-- [...] -->
  <tasks>
    <!-- [...] -->
    <msbuild>
      <!-- [...] -->
      <buildArgs>/noconsolelogger /p:OutputPath=$(project.artifactDirectory)\test</buildArgs>
      <!-- [...] -->
    </msbuild>
    <!-- [...] -->
  </tasks>
  <!-- [...] -->
</project>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top